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

Большинство ответов связаны с изменением вызова на json.dumps (), что не всегда возможно или желательно (это может произойти, например, в компоненте framework).

Если вы хотите быть в состоянии для вызова json.dumps (obj) как есть, тогда простое решение наследуется от dict:

class FileItem(dict):
    def __init__(self, fname):
        dict.__init__(self, fname=fname)

f = FileItem('tasks.txt')
json.dumps(f)  #No need to change anything here

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

59
задан Troy Alford 11 April 2013 в 20:22
поделиться

10 ответов

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

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

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

РЕДАКТИРОВАНИЕ 2015 : Серьезно, этому ответу 7 лет теперь. Забудьте SVN, пойдите Мерзавец использования как все остальные!

61
ответ дан Vincent Robert 24 November 2019 в 18:19
поделиться

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

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

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

Pro Подрывная деятельность:

  • Поддержка имеющего версию переименовывает/перемещает (невозможный с CVS): Fingolfin, каталоги Ender
  • Supports исходно: возможно удалить их, и они являются имеющими версию: Fingolfin, свойства Ender
  • File являются имеющими версию; больше "исполняемого файла не укусило" ад: Fingolfin
  • Полное число пересмотра делает управление версиями сборки и регрессионное тестирование намного легче: Ender, Fingolfin
  • Атомарные фиксации: Fingolfin
  • Интуитивное (основанное на каталоге) ветвление и метки: Fingolfin
  • Более легкие сценарии рычага (пред/сообщение фиксация, и т.д.): SumthinWicked (я использую его для Doxygen после фиксаций)
  • , Предотвращает случайную фиксацию противоречивых файлов: соленая лошадь, Поддержка Fingolfin
  • пользовательской 'различной' команды: Fingolfin
  • Офлайновый diffs, и они мгновенны: sev
19
ответ дан Michael Stum 24 November 2019 в 18:19
поделиться

SVN имеет 3 основных преимущества перед CVS

  • , это быстрее
  • управление версиями поддержек двоичных файлов
  • и добавляет транзакционную фиксацию (все или ничего)
15
ответ дан lubos hasko 24 November 2019 в 18:19
поделиться

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

7
ответ дан Mat 24 November 2019 в 18:19
поделиться

Я буду предложение второго Eridius Мерзавца, но я развернул бы его до другого DRCS (Распределенная Система управления версиями) такой как Подвижный и базар .

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

, С другой стороны, что не делает , CVS в настоящее время делает для Вас? От Вашего начального вопроса у Вас действительно нет никого, "CVS сосет в этом, что я мог использовать вместо этого?"

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

4
ответ дан Steven Dick 24 November 2019 в 18:19
поделиться

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

4
ответ дан engtech 24 November 2019 в 18:19
поделиться

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

2
ответ дан David Sykes 24 November 2019 в 18:19
поделиться

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

  • Слияние и ветвление очень отличаются, и если Вы переходите и часто объединяетесь, если у Вас нет SVN 1.5, работающего на Вашем сервере, должны знать, когда Вы перешли (это не очень ясно у Черепахи диалоговые окна SVN). Michael говорит, что ветвление и слияние интуитивны, я утверждал бы, что после использования 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. Можно вымыться, если Вы запускаете свой repos в неправильном месте, но это приводит к беспорядку.
2
ответ дан Kris Erickson 24 November 2019 в 18:19
поделиться

Необходимо смотреть на Мерзавец вместо SVN. Это - DVCS, это сверкает быстро и очень мощное. Это не столь удобно для пользователя как SVN, но это улучшается в том отношении, и это не что трудно для изучения.

1
ответ дан Lily Ballard 24 November 2019 в 18:19
поделиться

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

0
ответ дан webwesen 24 November 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: