Изменения

Перейти к: навигация, поиск

Сравнение DVCS - несколько задач

2586 байтов добавлено, 15:52, 19 ноября 2009
Управление патчами
Крут ли quilt, нет ли — каждый решает сам для себя. Конечно, поддержке Debian-патчей на какой-нибудь Midnight Commander (их там в районе 60-и) quilt … помогает. Тем не менее, с моей точки зрения, некорректно закладываться на жёстко последовательное применение всех патчей. На самом деле, такие патчи логично организовывать в виде графа (графа зависимостей). Сразу будет видно, что большинство патчей независимы друг от друга, а зависимости окажутся на виду.
Таким образом, задачу управления патчами удобнее всего решать, заводя по отдельной ветке на каждый патч. Причём даже есть расширения Mercurial [http://arrenbrecht.ch/mercurial/pbranch/ pbranch] (от patch branches) и Git [http://repo.or.cz/w/topgit.git TopGit] (от topic branches). Для Bazaar’аподобного расширения, увы, таких расширений нет. '''Mercurial''''овский pbranch: хорошо. Умеет весьма немногое. Самые полезные команды — это <tt>pdiff</tt>, <tt>pgraph</tt> и <tt>pmerge</tt>. <tt>pdiff</tt> экспортирует текущий патч '''без его родителей''' в стандартном формате. <tt>pgraph</tt> показывает граф зависимостей патчей, из которого можно, по сути, понять, в какой последовательности их накатывать, если они сами уже экспортированы. Ну и просто вообще граф патчей — это удобно. <tt>pmerge</tt> объединяет изменения, произошедшие в зависимостях патча, в патч. Другие команды расширения: ;pbackout: отменить текущий патч.;pmessage: посмотреть описание патча.;peditmessage: изменить описание патча.;pemail: отправить патч по почте, имхо — бесполезная вещь.;pnew: создать новый патч из ещё не закоммиченных изменений в текущей ветке.;pstatus: посмотреть статус патча (какие изменения требуются).;reapply: применить некую уже закоммиченную ревизию в ветку патча. Чего не хватает (хочется): * легко создавать патчи, зависящие от нескольких других.* легко поддерживать ветку, содержащую объединение всех патчей — для развёртывания. '''TopGit''': (исследую). Забавная, кстати, вещь. Явно написана в общем духе git-а (смесь скриптов на bash, perl и программ на C). «Головной» скрипт '''<tt>tg</tt>''' (TopGit) написан на шелле, и команды tg --help, tg -h, tg help и т. п. сначала вводят в недоумение — «no git repository here». Справку TopGit печатать умеет, но для этого сначала надо зайти в git-репозиторий :) типа ''Чего ты спрашиваешь? У тебя интерес реальный? Ты покупать будешь или нет?..''
== Схема управления рабочими копиями ==

Навигация