Изменения

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

218 байтов добавлено, 16:14, 19 ноября 2009
Работа с SVN (миграция и синхронизация)
== Работа с SVN (миграция и синхронизация) ==
Что любопытно — с SubversionПочему-репозиториями то, говоря о недостатках DVCS работают, как правилоникогда не говорят о следующем не очень удобном при переходе с централизованных систем поведении — DVCS отслеживают версию ''цельного'' репозитория, гораздо быстрее самого Subversionа не отдельных файлов или директорий. Кроме проблем, и быстрее всех работает которые это создаёт при желании извлечь ''часть'Bazaar'репозитория для работы, а не обязательно весь, это ведёт к тому, что если две ветки «расходятся», становится обязательным слияние, даже если ''. То есть, 'конфликтов в принципе, можно изменениях не было''' и даже если '''вообще жить с Subversion-сервером менялись разные файлы'''. А централизованным хоть бы хны — <tt>svn up</tt> и Bazaar-клиентомживи себе дальше.
Кстати, почемуЧто ещё любопытно — с Subversion-то, говоря о недостатках репозиториями DVCSработают, никогда не говорят о следующем не очень удобном при переходе с централизованных систем поведении — DVCS отслеживают версию цельного репозиториякак правило, а не отдельных файлов или директорий. Кроме проблембыстрее самого Subversion, которые это создаёт при желании извлечь часть репозитория для работы, а не обязательно весь, это ведёт к тому, что если две ветки «расходятся», становится обязателен merge, даже если и быстрее всех работает '''конфликтов в изменениях не былоBazaar''' . То есть, в принципе, можно вообще жить с Subversion-сервером и даже DVCS-клиентом (если '''вообще менялись разные файлы''', конечно мириться с постоянными слияниями и rebase’ами).
'''Mercurial''': отлично! Есть несколько расширений — [http://mercurial.selenic.com/wiki/HgSubversion hgsubversion], [http://pypi.python.org/pypi/hgsvn hgsvn], [http://mercurial.selenic.com/wiki/ConvertExtension convert], позволяющих работать с Subversion тем или иным образом, и не совместимых друг с другом. Самое вменяемое из них — '''hgsubversion''', хотя и заявлено, что оно ещё сырое, и, к сожалению, не распространяется вместе с Mercurial’ом. Имеет фактически весь необходимый функционал — можно делать и <tt>push</tt>, и <tt>pull</tt> в/из Subversion, можно клонировать SVN-репозиторий с сохранением веток и меток (правда, обязательно стандартное их расположение в корневых поддиректориях <tt>/trunk</tt>, <tt>/branches</tt>, <tt>/tags</tt>), эти два метода совместимы, <tt>rebase</tt> также работает, а граф ветвлений сохраняется. Очень крут тот факт, что ветка, которая создавалась неполным копированием <tt>trunk</tt>'а, то есть, копированием некоторых его поддиректорий, успешно подцепилась в нужное место графа ветвлений. Ни Bazaar, ни Git этого не смогли.