Яндекс.Метрика

    Юмор

    Забавный баг git-а и Линус Торвальдс

    Недавно знакомый Андрей (совсем недавно перешел на программирование под линукс) хотел создать новую ветку в git-е, но не был уверен в параметрах и хотел посмотреть подсказку. Он выполнил комманду с логичными, как ему показалось, параметрами:

    git checkout -b --help

    Как думаете что сделала эта комманда? Правильно, создала ветку с именем --help=)

    Switched to a new branch '--help'

    Ну не проблема, удалим её.

    git checkout master
    Switched to branch 'master'
    git branch -d --help


    Но не всё так просто. Результатом последней комманды был вывод помощи по утилите git branch.

    Хм. Ладно, попробуем переименовать ветку и затем удалить ее.

    git branch -m --help todo_remove

    И как вы уже догадались, эта комманда тоже напечатала краткую помощь по использованию git branch.

    А вы сходу придумаете как удалить её?

    Как избавится от ветки и неожиданое продолжение истории под катом.
    Ну покопавшись в манах и проявив небольшую смекалку знакомый решил поставленную задачу:

    git branch -d -- --help

    Двойной дефис прекращает проверку опций и все последующие параметры передаются напрямую.

    Но душа просила отправить багрепорт, чем он и собрался заняться. Как я уже упомянул Андрей совсем недавно начал активно работать с линуксом и про такие штуки как рассылки проектов не знал. Поэтому он начал искать кнопку «отослать сообщение об ошибке» на сайтах посвященных git-у: git-scm.com, github.com, и тд. Проведя более глубокие поиски он нашел как сообщить об ошибке на bugs.launchpad.net, но ошибкой это не посчитали, а пообещали добавить упоминание про эту особенность в вопросы-ответы.

    Андрей на этом не успокоился и решил сообщить разработчикам напрямую. Он нашел на сайте автора git-а. И решил ему написать письмо. Вы наверное уже догадались, кто это был=)

    В письме Андрей жаловался на то, что на сайте Microsoft на главной странице Microsoft Connect есть кнопка сообщения об ошибке, а на сайтах посвященных git-у — ее нет;)

    Но самое удивительное, что Линус ответил на письмо! Он подтвердил, что это не баг, но надо про это предупреждать пользователя. Так же посоветовал моему знакомому использовать рассылки или irc=)

    Ниже сам ответ на письмо:

    Дата: Fri, 4 Dec 2009 07:26:08 -0800 (PST)
    От: Linus Torvalds <torvalds@linux-foundation.org>
    Тема: Re: Git. Thank you. And bug.
    Кому: *
    On Fri, 4 Dec 2009, * wrote:
    >
    > Now about the bug. It's a funny one. Do you wonder what happens if you
    > type 'git checkout -b --help'? It will create the new branch named
    > --help =) And I can't do anything with it (the other two commands git
    > branch -d --help & git checkout -m --help some_useful_name just do
    > display help). It is funny.
    Ok, not strictly a bug, but perhaps we could notice that you almost
    certainly didn't _really_ mean to have a branch that looks like an option
    (they are hard to use too — not impossible, but hard).
    > A few thoughts about the community. I've been searching the place (hmmm
    >… to contribute or to report a bug), I've spent about an hour and all
    > I've found was Ubuntu's page where I can report a bug). I've been to
    > git-scm.com, git-wiki, github, several searches in google, etc.) There
    > was no button, no link 'report a bug' =(
    The best place to report bugs is to the mailing list and perhaps also add
    the git maintainer to the Cc. I may have started it, but Junio has been
    maintaining git (very well too) for several years now, and I'm usually too
    busy with kernel stuff to be very active other than as a pure git user.
    So:
    Git Mailing List <git@vger.kernel.org>
    Junio C Hamano <gitster@pobox.com>
    > There is so much easier to find the information, I need, at
    > Microsoft-related web resources. And that is very sad. How do you feel
    > about it?
    Heh. For git, I just did a google search for «git» and pressed «I'm
    feeling lucky», which took me to
    git-scm.com/
    and then there on the front page it says mailing list (there's also an
    #irc chat channel which can be very useful).
    But yeah, if you don't know that the mailing list is where everything
    happens, maybe that doesn't make much of an impression ;)
    Linus