scholar_vit: (Default)
scholar_vit ([personal profile] scholar_vit) wrote2007-01-17 03:24 pm
Entry tags:

Об эстрадности

Университет перестраивает учебные планы. Мой курс поставили на осень, поэтому сейчас ничего не читаю. А тут оказалось, что в компании надо провести лекцию для новых разработчиков: объяснить, как работает CVS (чего только не приходится преподавать). С утра ощущал подъём настроения; даже намечавшаяся простуда куда-то ушла.

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

Собственно, этот журнал - тоже от эстрадности.

Re: версии на стол

[identity profile] vgramagin.livejournal.com 2007-01-17 09:03 pm (UTC)(link)
Я думаю, речь идет о репозитарии. Хотя чему там учить - две команды, пять ключей...

Две команды..

[identity profile] scholar-vit.livejournal.com 2007-01-17 09:51 pm (UTC)(link)
cvs --help-commands
CVS commands are:
        add          Add a new file/directory to the repository
        admin        Administration front end for rcs
        annotate     Show last revision where each line was modified
        checkout     Checkout sources for editing
        commit       Check files into the repository
        diff         Show differences between revisions
        edit         Get ready to edit a watched file
        editors      See who is editing a watched file
        export       Export sources from CVS, similar to checkout
        history      Show repository access history
        import       Import sources into CVS, using vendor branches
        init         Create a CVS repository if it doesn't exist
        log          Print out history information for files
        login        Prompt for password for authenticating server
        logout       Removes entry in .cvspass for remote repository
        ls           List files available from CVS
        pserver      Password server mode
        rannotate    Show last revision where each line of module was modified
        rdiff        Create 'patch' format diffs between releases
        release      Indicate that a Module is no longer in use
        remove       Remove an entry from the repository
        rlog         Print out history information for a module
        rls          List files in a module
        rtag         Add a symbolic tag to a module
        server       Server mode
        status       Display status information on checked out files
        tag          Add a symbolic tag to checked out version of files
        unedit       Undo an edit command
        update       Bring work tree in sync with repository
        version      Show current CVS version(s)
        watch        Set watches
        watchers     See who is watching a file
(Specify the --help option for a list of other help options)

Это скорее 33 команды, верно? И ключей там хватает.

В последнем Cederqvist'е 184 страницы. Как раз на средних размеров курс.

Да, для простых вещей трех-четырех команд достаточно. Но тем и хорош CVS, что позволяет делать и очень непростые вещи.

Re: Две команды..

[identity profile] vgramagin.livejournal.com 2007-01-17 10:12 pm (UTC)(link)
Ну ясен пень, что команд больше.

Но для реальной жизни достаточно трех с половиной: add, commit, checkout, ну еще раз в пару месяцев тэг прицепить. Я вот сейчас подумал - ничем больше за три года работы с cvs так и не воспользовался - и не потому, что не умел - нужды не было. Ах да, diff - ну это не считается, потому что делался из емакса.

Я ни в коем случае не наезжаю - просто мне сдается, что читать студентам курс по такой специфической системе, как cvs, нет особого смысла - ей пользоваться надо. За час можно в принципе объяснить, ЧТО можно сделать, а рассчитывать на то, что кто-то запомнит КАК - не стоит.

Re: Две команды..

[identity profile] scholar-vit.livejournal.com 2007-01-17 10:25 pm (UTC)(link)
Ну, я как раз про эти несколько команд и расказывал. Заодно объяснял, что и как надо ставить под CVS, и почему. Это ведь не курс был, а именно часовая лекция для наших разработчиков.

А сложные вещи - это, например, вот что. Поставщик даёт свою систему (в исходном коде). Наши программисты над ней работают. Раз в две недели поставщик присылает новую версию, где исправляет критические баги старой. Это надо интегрировать с изменениями, которые за это время наваяли наши добры молодцы.

Для этого, что интересно, хватает трех команд. Но с правильными ключами :). Это описано в 13-й главе Cederqvistа. И что интересно, года три назад мне пришлось именно этот процесс организовывать. Именно в таком режиме.

Re: Две команды..

[identity profile] vgramagin.livejournal.com 2007-01-17 10:29 pm (UTC)(link)
Извини, я как-то пропустил, что речь не о студентах шла.

А как вы это автоматизировали?

Re: Две команды..

[identity profile] scholar-vit.livejournal.com 2007-01-17 10:32 pm (UTC)(link)
В точности как написано в учебнике. Вставляю диск в привод, говорю cvs import и иду пить кофе. Возвратившись, смотрю в лог и говорю: "Хорошо весьма". Или, если возникли конфликты, рихтую напильником - но к счастью, такое было редко.

Re: Две команды..

[identity profile] vgramagin.livejournal.com 2007-01-17 10:37 pm (UTC)(link)
Аааа, так напильник все-таки иметь надо!

Кстати, что в CVS и правда хорошо сделано - так это automerge, perforce мне так же хорошо не удалось заставить работать.

Re: Две команды..

[identity profile] scholar-vit.livejournal.com 2007-01-17 10:45 pm (UTC)(link)
Если разработчик А принял длину поля в message в 6 байтов, а разработчик B в это же самое время - в 8 байтов, то никакая программа не поможет. Умная система должна делать две вещи: (1) автоматически сделать всё, что можно сделать автоматически и (2) ясно объяснить, что сделать не удалось, почему, и где именно надо приложить напильник.

Re: Две команды..

[identity profile] scholar-vit.livejournal.com 2007-01-17 10:47 pm (UTC)(link)
Кстати, а почему perforce не может использовать стандартные алгоритмы diff3?

Re: Две команды..

[identity profile] vgramagin.livejournal.com 2007-01-17 10:55 pm (UTC)(link)
А пес его знает, может, у меня руки не оттуда растут. Хотя я глубоко не копал - мне мерджать нужно было всего пару раз, я ручками все сделал.

Re: Две команды..

[identity profile] scholar-vit.livejournal.com 2007-01-17 10:57 pm (UTC)(link)
Для меня merge - операция довольно частая... Может, именно поэтому я так CVS люблю.

Re: Две команды..

[identity profile] vgramagin.livejournal.com 2007-01-17 10:30 pm (UTC)(link)
Кстати, после трех лет cvs были четыре с perforce... насколько же он все-таки удобней...

Re: Две команды..

[identity profile] scholar-vit.livejournal.com 2007-01-17 10:35 pm (UTC)(link)
Я в последнее время посматриваю на subversion. Но пока меня CVS устраивает, а её проблемы не сильно напрягают.

Re: Две команды..

[identity profile] vgramagin.livejournal.com 2007-01-17 10:36 pm (UTC)(link)
Там, где я сейчас работаю, только что с subversion перешли на perforce

А бесплатность все-таки фактор весьма и весьме значимый :-)

Re: Две команды..

[identity profile] scholar-vit.livejournal.com 2007-01-17 10:42 pm (UTC)(link)
А вот TeXLive в 2006 году, наоборот, перешла с perforce на subversion. И это при том, что Perforce, Inc. бесплатно предоставила свою систему для TeXLive.

Re: Две команды..

[identity profile] vgramagin.livejournal.com 2007-01-17 10:56 pm (UTC)(link)
Вот такие они странные :-)

Re: Две команды..

[identity profile] ninazino.livejournal.com 2007-01-18 12:59 am (UTC)(link)
Да, на мой взгляд тоже. Работала я и c ClearCase, и с CVS, но должна признать, что Perforce -- лучше.
И, кстати, мердж там очень даже неплохой, я им пользуюсь чуть ли не через день.

Re: Две команды..

[identity profile] spamsink.livejournal.com 2007-01-18 01:40 am (UTC)(link)
Perforce умеет перемещения строк отслеживать, как ClearCase умел? Как я его за это любил! Чуть не весь остальной ужас был готов простить.

Re: Две команды..

[identity profile] ninazino.livejournal.com 2007-01-18 01:48 am (UTC)(link)
Да. Я перфорсовский дифф использую и для всех остальных дифф-нужд. Вообще, перфорс, на мой взгляд, делает все то же, что и ClearCase, но а) проще, без лишней навороченности, и б) гораздо дешевле.

Re: Две команды..

[identity profile] ex-increp708.livejournal.com 2007-01-17 10:14 pm (UTC)(link)
Крютые кулхацкеры (извините) говорят "флаги". Это считается более кульно, чем "ключи".

:)