Каковы преимущества использования SVN над CVS?

голоса
56

Моя компания использует CVS как наш стандарт де-факто для управления версиями. Тем не менее, я слышал много людей говорят, что SVN лучше.

Я знаю, что SVN новее, но кроме этого, я не знаком с его преимуществами.

То, что я ищу хорошее, сжатое сравнение двух систем, отмечая любые преимущества или недостатки каждого из них в среде разработки Java / Eclipse.

Задан 04/08/2008 в 15:06
источник пользователем
На других языках...                            


12 ответов

голоса
18

Один из многочисленных сравнений:

http://wiki.scummvm.org/index.php/CVS_vs_SVN

Теперь это очень специфично для этого проекта, но много вещей apllies в целом.

Про Subversion:

  • Поддержка версионированных переименовывает / ходов (невозможна с CVS): Финголфина, Эндер
  • Поддержка каталогов изначально: Можно удалить их, и они версионируются: Финголфин, Эндер
  • Свойства файла являются версированными; не более «исполняемый бит» ад: Финголфин
  • В целом номер версия делает сборки версий и регрессивное тестирование гораздо проще: Эндер, Финголфин
  • Атомный совершает: Финголфин
  • Интуитивный (каталог на основе) ветвление и пометка: Финголфин
  • Легче сценарии крючком (до / после совершения, и т.д.): SumthinWicked (я использую его для Doxygen после совершающее)
  • Предотвращает случайное совершение конфликтующих файлов: солено-лошади, Финголфин
  • Поддержка команды пользовательского «Diff»: Финголфин
  • Offline дифференциалы, и они мгновенные: SEV
Ответил 04/08/2008 в 15:09
источник пользователем

голоса
7

Subversion книга имеет аппендикс , что детали важных отличий от CVS, которые могут помочь вам сделать ваше решение. Эти два подхода является более или менее той же идеей , но SVN была специально разработана , чтобы исправить давние недостатки в CVS так, по крайней мере теоретически, SVN всегда будет лучшим выбором.

Ответил 04/08/2008 в 15:14
источник пользователем

голоса
54

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

Существует также атомная коммит проблема. В то время как я только столкнулся с ним один раз, вполне возможно, что 2 человека, совершающие вместе в CVS может вступать в противоречие друг с другом, теряя некоторые данные и положить ваш клиент в неустойчивом состоянии. При раннем обнаружении, эти проблемы не являются основными, потому что ваши данные все еще где-то там, но это может быть боль в стрессовых условиях.

И, наконец, не так много инструментов разрабатываются вокруг CVS больше. В то время как новые и блестящие, новые инструменты, такие как Git или Mercurial определенно отсутствие инструментов еще, SVN имеет довольно большую базу приложений на любой системе.

EDIT 2015 : Серьезно, этот ответ 7 лет в настоящее время. Забудьте SVN, идти использовать Git , как и все остальные!

Ответил 04/08/2008 в 15:17
источник пользователем

голоса
14

СВН имеет 3 основных преимущества по сравнению с CVS

  • это быстрее
  • поддерживает управление версиями двоичных файлов
  • и добавляет транзакционной фиксации (все или ничего)
Ответил 04/08/2008 в 15:35
источник пользователем

голоса
0

Вы должны взглянуть на Git вместо SVN. Это DVCS , который молниеносно быстро и очень мощный. Это не так удобно , как SVN, но это улучшение в этой области, и это не что трудно учиться.

Ответил 07/08/2008 в 00:09
источник пользователем

голоса
1

Кстати: CVSNT поддерживает атомарные коммиты

Ответил 18/08/2008 в 17:22
источник пользователем

голоса
2

Я буду вторым предложением Eridius' из Git, но я бы расширить его другим DRCs (распределенная система контроля версий) , таких как ртутный и базар .

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

С другой стороны, что не CVS в настоящее время сделать для вас? Из вашего первоначального вопроса, вы на самом деле не имеют какой - либо, «CVS сосет на это, что я мог бы использовать вместо этого?»

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

Ответил 18/08/2008 в 18:04
источник пользователем

голоса
4

Одна вещь, чтобы не упускать из виду это экосистема. Я работал в CVSNT магазине, и я находил все более и более открытым исходным кодом инструменты, поддерживаемые SubVersion по умолчанию.

Ответил 18/08/2008 в 18:22
источник пользователем

голоса
2

Как кто-то, кто находится в середине переключения между CVS и SVN (вначале мы перешли все наши проекты с cvs2svn, а затем решили, что переход только с помощью SVN на новые проекты), вот некоторые из проблем, которые мы имели.

  • Слияние и ветвление очень разные, и если вы расшириться и слиться часто, если у вас есть SVN 1.5 работает на сервере должны знать, когда вы разветвленные (это не очень понятно, в диалогах Tortoise SVN). Майкл говорит, ветвление и слияние интуитивно, я бы сказал, что после использования CVS в течение 10 лет, это не так.
  • Если ваш сервер работает SVN на Linux, это может быть трудно получить SA, чтобы перейти к SVN 1.5, в качестве установки по умолчанию 1.4.x.
  • Слияние конфликтов не так легко и ясно (по крайней мере, для меня и моих коллег) в TortoiseSVN, как в TortoiseCVS. Трёхпанельный подход требует некоторого привыкания и WinMerge (мой любимый инструмент слияния) не делает три панели слияния.
  • Осторожно: многие электронные учебники и журнальных статей , которые я читал , очевидно , не ветвятся и слияния, вы должны настроить свой главный репозиторий , как https://svn.yoursvnserver.com/repos/YourProject/Trunk и ветви на https: / /svn.yoursvnserver.com/repos/YourProject/Branches/BranchX . Вы можете очистить , если вы начнете свои операции РЕПО в неправильном месте, но это приводит к путанице.
Ответил 04/09/2008 в 18:44
источник пользователем

голоса
0

Вы можете также выбрать миграцию только последний код из CVS в SVN и заморозить текущий CVS репозиторий. это будет сделать миграцию проще, и вы можете также создавать свои устаревшие релизы в старом CVS репозиторий.

Ответил 08/10/2008 в 17:19
источник пользователем

голоса
0

Ну, несколько вещей, которые я чувствую, делает СВН удивительным.

  1. СВН-Altassian тигель комбинация намного превосходит метод обзоров и проверок качества
  2. Более эффективное управление конфликтами и слияниях
  3. Это, очевидно, быстрее принимать извлечения, выполняя фиксации и т.д.
  4. Атомная проблема фиксации - Вполне возможно, что 2 человека, совершающие вместе в CVS может вступать в противоречие друг с другом, теряя некоторые данные и положить ваш код базу в неустойчивом состоянии

Миграция может быть легко сделана в течение нескольких часов, используя cvs2svn.

Ответил 18/09/2016 в 14:01
источник пользователем

голоса
1

CVS (Concurrent Versions System) и SVN (Subversion), две файловые системы управления версиями, которые широко используются команды, которые совместно работают над одним проектом. Эти системы позволяют коллаборационисты следить за изменениями, которые сделаны и знать, кто разрабатывает, который и будет ли ветвь должна быть применена к главному стволу или нет. CVS является намного старше из двух, и это был стандартный инструмент сотрудничества для многих людей. SVN гораздо новее и вводит много улучшений для удовлетворения потребностей большинства людей.

Ответил 17/07/2018 в 07:19
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more