Каковы преимущества использования СВН за ССС?

Моя компания использует CVS, как наш стандарт де-факто для управления исходным кодом. Однако, я слышал много людей говорят, что СВН лучше. Я знаю, СВН новее, но кроме этого, я не знаком с его преимуществами. Что я ищу-это хорошие, емкие сравнения двух систем, заметив преимущества или недостатки каждого в Java и среды разработки Eclipse.

Моя компания использует CVS, как наш стандарт де-факто для управления исходным кодом. Однако, я слышал много людей говорят, что СВН лучше. Я знаю, СВН новее, но кроме этого, я не знаком с его преимуществами. Что я ищу-это хорошие, емкие сравнения двух систем, заметив преимущества или недостатки каждого в Java и среды разработки Eclipse.

CVS отслеживает только изменения на пофайловой основе, в то время как в SVN треков всего совершить в новой редакции, что означает, что это легче проследить историю вашего проекта. Добавьте тот факт, что все современные программные системы управления версиями используют концепцию изменений, так гораздо легче переносить из SVN, чем из CVS. Существует также атомная проблема совершал. Пока я столкнулся только один раз, возможно, что 2 людей, совершающих совместно в CVS могут конфликтовать друг с другом, потерять некоторые данные и поставив своего клиента в несогласованном состоянии. Когда обнаружена на ранней стадии, эти проблемы не являются основными, потому что ваши данные все еще где-то там, но это может быть боль в стрессовых условиях. И, наконец, не многие инструменты уже разработаны вокруг резюме. В то время как новые и блестящие-новые инструменты, такие как Git или Mercurial наверняка не хватает инструментов, но, СВН имеет довольно большой выбор приложений на любой системе. Изменения 2015: серьезно, этот ответ Сейчас 7 лет. Забудьте СВН, идти использовать Git как и все остальные!

Одно из многих сравнений: <http://wiki.scummvm.org/index.php/CVS_vs_SVN> Сейчас это очень специфичные для данного проекта, но много вещей у тебя возникли вопросы в целом. Про Пагуба: Поддержка версионного переименовывает/перемещает (невозможно с CVS): Fingolfin, Эндер Поддерживает каталоги изначально: это возможно, чтобы удалить их, и они являются версионными: Fingolfin, Эндер Версионные свойства файла; нет больше "бит" ад: Fingolfin Общий пересмотр номер построения версий и регрессионное тестирование гораздо проще: Эндер, Fingolfin Атомной совершает: Fingolfin Интуитивный (на основе каталогов) веток и меток: Fingolfin Проще скрипты крючка (пред/пост-коммит, и т. д.): SumthinWicked (я использую его для помощи Doxygen после фиксации) Предотвращает случайное совершение конфликтующих файлов: солено-лошадь, Fingolfin Поддержка параметров пользовательские 'различия': Fingolfin В автономном режиме дифференциалы, и они мгновенно: сев

СВН имеет 3 основных преимущества по сравнению с CVS это быстрее поддерживает версионирование двоичные файлы и добавляет коммит транзакций (все или ничего)

Книга подрывной деятельности имеет приложение, в котором приведены важные отличия от ССС, которые могут помочь вам сделать ваше решение. Оба подхода более или менее та же идея, но SVN был специально разработан, чтобы исправить давние недостатки в резюме так, по крайней мере в теории, СВН всегда будет лучшим выбором.

Я второе предложение Eridius' в Git, но я расширю его на другой ВЖК (распределенная система контроля версий), такие как Mercurial и базар. Эти продукты являются относительно новыми и уровень оснащения и интеграции с ними кажется низким на данный момент (исходя из моих первоначальных исследований). Я бы сказал, что они лучше всего подходят для власти-разработчики там (и здесь ;-)). С другой стороны, что не в настоящее время резюме сделает за вас? Из вашего первоначального вопроса, Вы на самом деле нет, "СКЗ хреново это, что я могу использовать вместо этого?" Вы должны взвесить затраты на любые возможные миграции с выгодами. Для существующего проекта, Я думаю, что было бы трудно оправдать.

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

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

Как человек, который находится в середине переключение между CVS и SVN (изначально мы поменяли все наши проекты с cvs2svn, а потом решили, что мы бы переход только через SVN на новые проекты), вот некоторые из проблем, которые мы имели. Слияния и разветвления очень разные, и если вы филиал и часто сливаются, если у вас есть в SVN 1.5 работает на вашем сервере должны знать, когда вы ветвятся (это не очень понятно в Черепаха диалоги СВН). Майкл говорит, что разветвления и слияния интуитивно, я утверждаю, что после использования ССС на 10 лет, это не так. Если вы делаете свой SVN-сервер на Linux, это может быть трудно, чтобы получить ваш СА переехать в SVN 1.5, так как по умолчанию установить 1.4.х. Слияние конфликтов не так легко или так понятно (по крайней мере для меня и моих коллег) в TortoiseSVN, как оно в TortoiseCVS. Три панели подход требует некоторого привыкания и WinMerge лежит (мой любимый инструмент слияния) не три панели слияния. Будьте осторожны: многие электронные учебники и статьи из журналов я прочитал, очевидно, не ветвления и слияния, вы должны установить свой основной репозиторий, как <https://svn.yoursvnserver.com/repos/YourProject/Trunk> и филиалы на <https://svn.yoursvnserver.com/repos/YourProject/Branches/BranchX> . Вы можете убирать, если вы начинаете свой РЕПО в неположенном месте, но это приводит к путанице.

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