2008-10-01 3 views
6

Моя компания невольно переключилась с cvs на подрывную деятельность, и теперь мы все желаем, чтобы у нас были cvs. Я знаю, что есть инструменты для переноса истории и изменений с cvs на svn, и нет эквивалента делать обратное. Любые предложения или идеи о том, как это сделать?Есть ли разумный способ перехода от подрывной деятельности к cvs?

+1

Я не могу придумать ни одной веской причины, почему вы предпочли бы CVS над Subversion. Вы сталкиваетесь с конкретными проблемами с переходом, который вы хотите задать на этом сайте? – Logan 2008-10-01 21:54:40

+0

Какие у вас проблемы с SVN, чтобы вы хотели вернуться? – 2008-10-01 22:00:54

+0

@stu, вы либо обмануты, либо тролль! :-) – 2008-10-01 22:04:37

ответ

25

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

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

Я также считаю, что вы ничего не добьетесь, переключившись на CVS, но если вы захотите это сделать, вы, вероятно, будете писать свой собственный сценарий. Команда «svn export», несомненно, будет полезна в этом начинании.

6

Не обновление. Не делай это.

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

Если вам нужна что-то другое, кроме SVN по какой-либо причине, посмотрите на другие системы управления версиями. Их много, и они почти все лучше CVS (на самом деле, только Visual Source Safe так же плохо).

3

Когда все, что у вас есть, это молоток, все выглядит как гвоздь.

Лучшая ставка заключается в том, чтобы узнать svn, он станет более осведомленным.

6

SVN невелика. SVN лучше, чем CVS. Если вы хотите изменить заказ Mercurial, GIT, Bazaar.

7

Я не думаю, что инструменты существуют, чтобы идти в другом направлении, потому что на это не так много спроса.

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

Кстати, мне действительно интересно узнать, какие у вас проблемы с SVN.

3

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

Но если вам не нравится подрывная деятельность, почему бы вам не взглянуть на более современные распределенные системы (git, mercurial и т. Д.)?

7

Так что же с SVN, что вашей компании не нравится, и CVS лучше? Дизайнеры SVN изо всех сил старались сделать SVN-опыт довольно похожим на CVS. Если вы используете клиента Tortoise в качестве передней части, опыт очень схож. SVN дает вам атомные коммиты, которые, хотя и не совсем соответствуют стандарту Perforce, - это мили перед CVS.

Мне сочувствует ваше бедственное положение. Я обновил нашу команду разработчиков & IT Team от CVS до SVN. Я получил все правильные скрипты python, чтобы обновить всю историю версий, и мы с удовольствием используем SVN почти 4 года. Около трех месяцев назад лидер ИТ-группы решил «обновить» все свои проекты из SVN, чтобы догадаться, что? Правильно, тяжелый подъемник систем контроля версий: SourceSafe!

Я бы определенно придерживался SVN или даже смотрел на некоторые из новых распределенных систем, таких как Mercurial. В этих системах нет центрального сервера. Они полагаются на возможность разделить & на несколько десятков или сотен сверстников. Вы определяете свою собственную топологию, поэтому, например, вы должны указать конкретный одноранговый узел как тот, который выполняет ежедневные сборки.

3

Согласен с капралом Touchy.

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

С помощью Svn вы можете перемещать/переименовывать файл без потери его истории; вы получаете более безопасные коммиты (коммиты - это атомные операции) и глобальные изменения.

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

PS: Я думаю, что капрал говорил о Mercurial

1

только 2 недостатков подрывного я могу думать пользователей, перешедших из CVS являются

  • скорость извлечений над HTTP (S)
  • отсутствие modulaliases

первых один может быть решена с помощью svn (+ ssh), который является более сопоставимым форматом, так как CVS использует собственный протокол. второй немного сложнее, но можно эмулировать Svn: внешнеположенности (которые имеют свои собственные неприятные побочные эффекты) Если вы столкнулись любые другие дополнительные недостатки, я все ухо ..

4

СВН должен был быть лучше чем cvs, но в некоторых областях, которые не работали хорошо. Другие распределенные инструменты намного быстрее (svn медленнее, черт возьми, даже cvs может быть быстрее), имеют гораздо больше полезных функций, чем svn, быстро развиваются (при просмотре любой новой функции в svn принимает YEARS). С другой стороны, svn довольно легко учиться и централизованно (это важно для некоторых людей).

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

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

2

Просто обратите внимание на один пункт: Bazzar, Mercurial и т. Д. (Которые были рекомендованы некоторыми людьми здесь) - все это распределенные системы контроля версий. Мне было почти невозможно управлять большими группами программистов, работающих с одним и тем же исходным кодом, используя эти инструменты. В моей компании мы используем SVN, и это замечательная работа.

6

Один из аспектов git не обсуждался, когда он был доведен до вашего сведения во всех этих других ответах: git обеспечивает эмуляцию cvs-сервера, так что вы можете перейти на git (svn to git легко и хорошо поддерживается) а затем использовать интерфейс сервера cvs для централизованного доступа к репозиторию. Никто не должен знать, что вы используете git в фоновом режиме, и вам не нужно решать проблемы с распределенным резервным копированием.

1

Не знаю, почему вы хотите сделать это, но происходит из SVN -> GIT -> CVS может работать

Вы бы запустить ..

git svn clone http://thesvnserver ourrepo 

Затем, используя следующее руководство по экспортировать обратно в CVS (не совсем уверен, что это будет работать):

http://issaris.blogspot.com/2005/11/cvs-to-git-and-back.html

git cvsexportcommit 4a20cbafdf25a141b31a8333284a332d1a4d6072 

Также есть git cvsserver

Смежные вопросы