Вопрос

Я помогаю настроить SCM для новой программы, и в настоящее время мы находимся в процессе принятия решения о венчурном капитале.

Основными претендентами на данный момент являются SVN, ClearCase, SVN + DVCS и просто DVCS.

На данный момент команда склоняется либо к SVN, либо к SVN + DVCS.Мы хотим избежать расходов на администрирование ClearCase, но нам нужны рабочие процессы и варианты управления версиями, которые он предлагает.Я также предложил вариант использования DVCS, и эта идея рассматривается.

Для DVCS мы рассматриваем Mercurial, Bazaar и Git.Команда чувствует себя комфортно с SVN, но не думаю, что это обеспечит необходимую универсальность, именно поэтому мы рассматриваем вариант DVCS поверх SVN.

Есть ли у кого-нибудь какой-нибудь совет (напримерсуществующие инструменты, процессы) для запуска такой настройки?

Проблемы включают в себя:

  • Простота настройки
  • Настройка рабочих процессов (разработка <-> обзоры кода -> тестирование -> магистраль, затем магистраль -> ветвь интеграционных тестов -> выпуск с исправлениями ошибок, помещенными в ветви выпуска), аудит (обнаружена ошибка, когда она была введена)
  • Генерация метрик
  • Разумная кривая обучения для разработчиков, привыкших к ClearCase.
  • Разработка Windows
  • Интеграция с трекером проблем (вероятно, это будет Redmine, хотя она и не высечена на камне)
Это было полезно?

Решение

Как администратор ClearCase, я бы исключил этот инструмент, если только у вас нет сложного рабочего процесса слияния.

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

Самая большая ловушка, когда вы привыкли к ClearCase (особенно к ClearCase, отличному от UCM), - это "состав" спецификации конфигурации.
Если вы выберете DVCS (Mercurial, Bazaar - или Git, поскольку он действительно хорошо работает в Windows), вы бы не быть в состоянии получить тот же "эффект наследования" - (когда вы выбираете разные версии с разными последовательными правилами выбора --:как сказано в этом ответе:

В чисто централизованной VCS вы можете определить свое рабочее пространство (в ClearCase ваш "вид" либо моментальный снимок, либо динамический) с любыми правилами, которые вы хотите.
Это было бы непрактично в DVCS (как в "Распределенном"):когда вы создаете ветку с его помощью, вам нужно сделать это с четко определенной отправной точкой и содержимым, которое можно легко реплицировать в другие репозитории.

Если вы используете ClearCase UCM, это означает идентификацию согласованных наборов файлов, что может быть достигнуто только с помощью, например - Подмодули Git.
Сложность с этими DVCS выше, поскольку они не записывают зависимости между модулями (или "набором файлов"), как это делает ClearCase UCM.

Итак, подведем итог:

  • Простота настройки:все упомянутые видеорегистраторы просты в настройке.Что необходимо принимать во внимание, так это администрацию с точки зрения доступа пользователей.
  • Настройка рабочих процессов:DVCS поддерживает любой тип рабочего процесса, даже централизованный или государственно-частный, или....Что касается поиска ошибки, все они поддерживают какой-то разделите процесс пополам.
  • Генерация метрик:если под этим вы подразумеваете "показатели об управляемом коде", то все они поддерживают некоторую полную систему ведения журналов, способную отображать много информации о том, что изменилось.
    Но с точки зрения "показателей об инструменте" (скорость процесса или пространство, занимаемое данными), упомянутые инструменты DVCS считаются намного более быстрыми, чем SVN (см. вот в качестве примера).
  • Разумная кривая обучения для разработчиков, привыкших к ClearCase:графический интерфейс может быть фактором, облегчающим процесс обучения, но DVCS сильно отличается от ClearCase, поскольку это "основные концепции"ответ иллюстрирует.
  • Разработка Windows:все они хорошо работают на платформе Windows, возможно, с небольшим преимуществом (лучшая интеграция) по сравнению с Mercurial или Bazaar.
  • Интеграция с трекером проблем (вероятно, это будет Redmine, хотя она и не высечена на камне):Redmine теперь поддерживает большинство из них (а не только SVN, как это было вначале).

Другие советы

В чем проблема с Git?Прямо сейчас я использую Git в Windows.Это работает просто отлично.Расширения Git это очень полезно, если вы хотите некоторую интеграцию с Explorer, если это ваша проблема.

У меня нет опыта работы с clearcase, но, надеюсь, следующее немного поможет.В вашем вопросе не учитывается несколько фрагментов информации, которые я бы принял во внимание, прежде чем принимать решение.Во-первых, сколько исходного кода у вас будет?Хотя SVN хорош в средних и крупных проектах, для по-настоящему крупных, таких как ядро Linux, Git обеспечит гораздо лучшую производительность.Во-вторых, какую IDE вы используете?В то время как Mercurial, Git и SVN имеют плагины visual studio и eclipse, качество там очень высокое.Согласно статье Википедии о Redmine, любая из рассматриваемых вами SCM-систем будет интегрирована.Следующий блог может быть полезен для вас, поскольку он написан парнем, который зарабатывает на жизнь написанием SCM-системы.http://www.ericsink.com/

Если бы вы могли отказаться от требования, что он должен запускаться в Windows, то я бы рекомендовал посмотреть на Эгида.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top