У каждого инструмента есть свои сильные и слабые стороны. Вопрос в том, каковы ваши требования. К сожалению, с этой проблемой, как и со многими другими, зачастую выбирается не лучший инструмент, а тот, с которым кто-то знаком. Например, если вам не нужно много филиалов, а ваша команда небольшая и локальная, почти все vcs выполнят эту работу (кроме SourceSafe). Ситуация меняется, если вам нужны ветки (что почти по необходимости означает, что вам также нужно выполнять слияния), ваша команда распределена, вам нужна повышенная безопасность (субподрядчикам не разрешено все дерево исходного кода), отслеживание задач и т. Д. Также возникает вопрос стоимость тремя различными способами: стоимость лицензий, стоимость обслуживания (некоторые инструменты настолько сложны, что на практике вам нужен кто-то просто для управления репозиториями) и стоимость обучения.
Поэтому предлагать один инструмент над другим - все равно что предлагать лучший язык программирования.
Просто несколько указателей:
- StarTeam - самый простой из инструментов
Я использовал. Это потребовало очень мало
повышение квалификации. Я получил однодневное обучение
так как я должен был быть сопровождающим.
Это поддержание заняло у меня менее 30
минут в неделю. Пользователи, которых я "обучал"
написав двухстраничное руководство и
после этого у меня было очень мало вопросов
отвечать.
- Континуус был другим концом
масштаб, насколько простота использования
обеспокоен. С другой стороны, обработка задач была великолепной и обеспечивала хорошую поддержку управления релизами. Проблема в том, что даже будучи менеджером релизов, я никогда не думал, что легкость создания релизов (это когда-то вы узнали, как, но это заняло значительное количество времени) должна быть важнее повседневной работы, которую делают разработчики.
- Слияния и создания филиалов отличается
дико между инструментами. Некоторые инструменты делают
это просто, как git и ClearCase
(хотя последний очень медленный)
некоторые в основном заставляют вас делать
слить вручную. Если вам нужно сделать
много сливается, стоимость может стать высокой.
ClearCase также был дорогим во всех
три категории, упомянутые ранее
(хотя надо сказать, что мы использовали
все продвинутые вещи, которые не
необходимо). Git с другой стороны
не хватает хорошего интерфейса и некоторых концепций
отличается от того, что вы могли бы использовать
к. Функции безопасности Git также
отсутствует (Гитоз обращается к некоторым
проблемы, но не все).
- Большинство инструментов, которые я использовал, также довольно
медленный. Инструменты типа PVCS / Dimensions были
просто медленно, несмотря ни на что
такие вещи, как открытие каталога в
хранилище), некоторые очень медленно
более конкретные способы (например, ClearCase).
Из инструментов, которые я использовал, я бы выбрал StarTeam, если ваши разработчики не очень опытны (и если вы не против заплатить лицензию, что довольно дорого), и мерзавец, если у вас есть опытные парни из VCS, которые могут настроить окружающая среда для других парней. Mercurial также выглядит как интересный конкурент и, кажется, имеет несколько лучший пользовательский интерфейс.
Continuus, PVCS / Dimensions и ClearCase слишком медленные, слишком сложные и слишком дорогие практически для любого проекта. Если кто-то настаивает на выборе одного из них, я бы выбрал ClearCase.
Я не использовал Subversion, который многим нравится (но у меня есть ощущение, что это скоро изменится), поэтому не могу комментировать, как он сравнивается с другими инструментами, которые я использовал (обычно в качестве менеджер сборки и / или выпуска).
Что касается первого инструмента, который нужно выбрать, проблема с Git, Bazaar и Mercurial заключается в том, что они распределены по vcs. Это отличается от традиционной модели сервер-клиент, где у вас есть центральное хранилище. Для того, чтобы просто изучить материал, я бы рекомендовал также прочитать о концепциях Например, ветвление - это то, что вы можете не понять правильно, просто попробовав себя (существуют разные стратегии ветвления для разных ситуаций). К тому же, если вы единственный, кто обращается к хранилищу, это совсем другое дело, например, конфликты слияния не будут проблемой (вы можете их увидеть, но вы легко их исправите, так как знаете код в обеих ветках). Конечно, вы узнали бы о проверках, проверках и тому подобном, но я не думаю, что эти проблемы особенно сложны в первую очередь.
Добавленная проблема с vcs заключается в том, что они, как правило, используют разные термины. В StarTeam, который в остальном прост в использовании, они по какой-то причине настаивают на использовании терминов «проверить» и «проверить и заблокировать». Последнее - то, что большинство людей думают, что первое делает. Для этого есть причина (вы можете редактировать файлы, даже если у вас нет эксклюзивной блокировки), но все равно было бы гораздо разумнее вызывать их «Получить» и «Проверить», чтобы избежать путаницы.