Подтвердить что ты не робот

Вы могли бы перейти от cvs к svn или непосредственно к git или hg?

Я не знаю, правильно ли это форум.

Моя компания использует CVS в качестве системы контроля версий. Мы планируем перейти к более современной системе управления версиями. Что бы вы рекомендовали в качестве наименее рискованного решения?

Моя идея - использовать Subversion, но я также слышу много хороших вещей о Git и Mercurial

Однако мы небольшая компания, и нам не нужна система управления распределенной версией. Какие преимущества имеют Git или Mercurial в отношении Subversion, кроме того, что они распределены?

4b9b3361

Ответ 1

Мы переехали из CVS в Mercurial около 2 недель назад на мою работу. Мы небольшая группа из 6 человек. Только две из них уже работали с чем-то другим, кроме CVS, до перехода.

Я был ответственным за выбор новых vcs. Я считал Git и Mercurial.

Некоторые из печалей, которые мы имели с CVS, были плохими возможностями ветвления, без поддержки переименования, действительно плохой алгоритм для конфликтов.

Я никогда не рассматривал SVN, потому что каждый раз, когда я пытался использовать его с ветвями в прошлом, слияния всегда были головной болью. И, честно говоря, все шумихи для dvcs в эти дни, и в этом должна быть причина;)

Между Git и Mercurial, это действительно больше о личном выборе. Мое сердце упало на Mercurial, потому что мне стало легче учиться, чем Git и менее "действительно большой проект".

Преимущества Git/Mercurial над SVN

  • Улучшенные ветки и возможности слияния (действительно самая важная причина)
  • Возможности экспорта/импорта патча в пучках, по электронной почте и т.д.
  • Не делал обширных тестов об этом, но я думаю, что обе быстрее во многом, чем SVN (слияние, клонирование, различие и т.д.)
  • Разработка намного активнее, я слышал, что команда SVN пытается двигаться вперед, но все же.
  • Действительно хорошая инфраструктура расширений
  • Возможность отправки веб-сервера, действительно полезная для быстрого обмена чем-то, например.

И даже если вы сказали "помимо того факта, что они распределены", я думаю, что это действительно функция убийцы. DVCS позволяет некоторые действительно опрятные вещи, это может показаться не полезным в начале, но как только вы их использовали, вы не можете обойтись без;)

Кривая обучения

Два человека в команде были не очень довольны изменением. Но с небольшим двухчасовым объяснением всей команды с некоторыми слайдами все прошло гладко.

Конечно, они спрашивают меня когда-нибудь вопрос, но с момента миграции у нас не было никаких реальных проблем. Просто небольшое недоразумение о том, как объединить вытащенные изменения в рабочем каталоге. Nothings, которые не были разрешены в считанные минуты.

Я думаю, что могу сказать, что примерно через две недели каждый из них по крайней мере так же продуктивен, как и раньше, и уверен в новом инструменте. И теперь мы можем использовать ветки функций без страха за слияние:)

Перенос CVS в меркурийный

https://www.mercurial-scm.org/wiki/RepositoryConversion#CVS

В официальной вики перечислены различные методы миграции из CVS в Mercurial. Я тестировал расширение Convert и cvs2hg, которое было наконец использовано.

Расширение Tailor, hg-cvs-import, fromcvs, похоже, является старым кодом и больше не поддерживается.

Расширение Convert прекрасно работает в простом репозитории, но поскольку наш репозиторий CVS был действительно большим и имел некоторые действительно странные ветки, расширение не смогло правильно импортировать всю историю. ГОЛОВА была правильной, но некоторые ветки отсутствовали.

Таким образом, последний выбор cvs2hg. На самом деле это новый бэкэнд для cvs2svn, который преобразуется в Mercurial вместо Subersion.

Подход "Быстрый старт", представленный в Readme, работал из коробки со всеми ветвями. Но, наконец, я использовал файл опций для добавления некоторого пользовательского сопоставления и отсечения каких-либо ошибок или нежелательных ветвей.

Файл с опциями в файлах, снабженных файлами, хорошо комментируется, вам не составит труда настроить его так, как вам подходит.

Для информации, после первоначального преобразования, я использовал расширение Convert, чтобы сделать некоторое извлечение подпроекта из результирующего репозитория Mercurial в другой репозиторий Mercurial, как описано здесь.

Ответ 2

Изменить: Великая ссылка - http://whygitisbetterthanx.com/

=============================================== ===========

Да, infact мы только что перешли из SVN в Mercurial.

Помимо распределенной стороны вещей Mercurial и GIT намного быстрее SVN, а также у repo нет раздражающих .SVN-папок в папке. Не говоря уже о том, что слияние работает намного лучше! Тот факт, что yuo также может хранить ваше репо на любом общем диске, хорошо (не нужно устанавливать файлы на сервере, для Mercurial в любом случае)

Подробнее чтение

Должен ли я использовать SVN или Git?

http://www.richappsconsulting.com/blog/blog-detail/svn-vs-git-who-will-be-the-future-of-revision-control/

http://thinkvitamin.com/code/why-you-should-switch-from-subversion-to-git/

http://techblog.floorplanner.com/2008/12/09/git-vs-svn-for-bosses/

И, наконец, GIT Vs Mercurial

http://gitvsmercurial.com/ - Этот сайт теперь выглядит мертвым: (

Ответ 3

  • Слияние кода и разрешение конфликтов легче использовать распределенную VCS например, GIT или Mercurial. Причина заключается в том, что GIT или mercurial все промежуточные снимки два "конечных кода", которые должны быть объединены во время подрывная деятельность знала бы только конец моментальный снимок, если каждый пользователь SVN работая в своей ветке.

  • С распределенным VCS вы не   в зависимости от сети, чтобы проверить   код.

  • Если у вас большое количество пользователей       проверка материалов в VCS на ежедневной основе       базы, ваш сервер SVN лучше будет       очень мощный для обработки параллельных       чек-входы/выходы. У DVCS нет этой проблемы.

Мы перешли от CVS к SVN и теперь к Mercurial, и мы очень довольны переходом. Нет ничего о том, что SVN нам не хватает в Mercurial, но возврат к SVN будет болезненным.

Ответ 4

Вещи SVN могут иметь значение для вашего рабочего процесса:

  • Частичные проверки.
    Может просто проверить часть дерева (важно, если в вашем репозитории имеется более одного проекта)

  • Смешанные проверки.
    Части вашего оформления могут быть в разных версиях, вплоть до одного файла.

  • Монотонно возрастает глобально уникальная ревизия.
    Легко видеть в SVN, что rev 1206 позже 1100 (c.f., cfbb0827c67d позже d500c208c3c5?)

  • Многие проекты могут совместно использовать один и тот же репозиторий SVN.
    Если ваш пакет состоит из нескольких EXE, DLL и еще чего-то, в области Hg/Git вы можете использовать несколько репозиториев для управления этим. Это может несколько осложнить обработку тегов/ревизий.

Ответ 5

Мы (карты Nokia OVI) также переходим из SVN в HG. Причина выбора HG над git заключается в том, что HG более дружелюбен, команды имеют гораздо больше смысла по сравнению с иногда неясными командами git. Также для пользователей Windows Mercurial работает намного лучше, а черепаха HG довольно зрелая. Когда я тестировал git на окнах, я наблюдал серьезные проблемы с производительностью при выполнении некоторых простых операций, таких как проверка изменений...

Мне также очень нравится, что вы можете использовать функции, которые вы хотите с помощью расширений. Таким образом, кривая обучения более плавная, чем с git, например, рассмотрим область кеша. Для людей, прибывающих из SVN, я думаю, что HG - хороший вариант.

Они должны быть более осторожными с историей, например, мы ободряем делать hg pull -rebase, чтобы история была как можно более линейной и объединяла только ветки.