ClearCase для контроля исходного кода? - PullRequest
5 голосов
/ 30 августа 2010

Я никогда не использовал ClearCase, но использовал Subversion и в течение короткого периода времени выполнял.ИТ-отдел нашей компании официально поддерживает ClearCase, и некоторые люди проверяют свой код в нем, а некоторые используют его в качестве резервного хранилища.

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

Спасибо ...

Ответы [ 7 ]

4 голосов
/ 01 сентября 2010

Предполагая, что вы ограничены двумя системами управления версиями (VCS), которые вы упомянули, Subversion (SVN) будет понятнее, проще и лучше поддерживаться практически во всех отношениях, пока вы не достигнете точки, в которой вы должны поддерживать несколько ветвей.

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

Опыт

Я использовал ClearCase с одним человеком (мной) и более чем с 400 людьми. У него много повседневных неудобств, проблем с юзабилити и сбоев, но он постоянно позволяет нам работать вместе. При установке ClearCase всегда были выделены администраторы, занятые полный рабочий день.

Я использовал Subversion сам и с одним другим человеком, и он отлично работает изо дня в день (без администраторов, кроме меня), но очень редко, но постоянно становится значительным источником разочарования из-за того, что он не может обрабатывать какие-либо существенные ситуации ветвления и слияния.

Почему SVN плохо поддерживает параллельную разработку и ветвление?

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

Ветвление - это способ, которым системы контроля версий моделируют параллелизм в жизни человека (например, два разработчика работают над двумя разными проблемами параллельно или один разработчик, у которого одновременно открыто несколько проблем). Но ветвление бесполезно, если вы не можете легко объединить работу каждого в единое целое!

Ветвление может происходить явно (в том смысле, что они называются и понимаются VCS) или неявно (как обычная копия файлов или извлечение). SVN поддерживает и то и другое, но в SVN ветвление обычно выполняется неявным ограниченным образом. Каждый извлечение является ветвью, но все ветки вынуждены синхронизироваться при каждой фиксации / обновлении. Это происходит потому, что SVN не поддерживает простое объединение явных ветвей и, следовательно, явные ветки создаются редко.

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

Другая важная проблема заключается в том, что, поскольку объединение явных веток не поддерживается должным образом, SVN плохо помогает перемещать изменения кода между людьми и между ветвями. Представьте, что вы пытаетесь исправить ошибку как в ветке релиза, так и в ветке разработки; в качестве альтернативы представьте, что два разработчика работают над связанной функцией, и им обоим необходимо вносить изменения друг в друга, но только в контролируемых точках. Используя SVN, вы можете выполнять эти задачи, но VCS делает очень мало, чтобы помочь вам, и вы должны быть готовы вручную подготовить и поддерживать исправления или отправлять файлы.

В других VCS вы можете попросить VCS объединить ветку, содержащую исправление ошибки или функцию, в различные другие ветви.В конце дня все эти ветви (которые сами содержат содержимое других ветвей) могут быть затем объединены в основную ветку.Чаще всего это будет автоматически и правильно обрабатываться VCS, тогда как SVN с такой гибкостью и параллелизмом практически невозможен.

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

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

Другие параметры

Теперь, если мы сделаем шаг назад и рассмотрим другие системы, предполагая, что ваш репозиторий в основном текстовыйНа основании относительно небольшого размера (менее нескольких сотен МБ) я бы посоветовал вам серьезно рассмотреть возможность использования BZR .BZR, по крайней мере, так же прост в использовании, как SVN, особенно если вы уже знаете SVN.Он также по крайней мере такой же мощный, как ClearCase во всех важных отношениях с точки зрения разработчика;он поддерживает несколько потоков (ветвей) разработки и имеет хорошую поддержку для их объединения.В то же время он может поддерживать централизованный стиль разработки по мере необходимости.

Хотя у меня нет опыта работы с ним, я должен также упомянуть, что вы можете использовать инструмент BZR для доступа к серверу SVN с bzr-svn , и это может дать вам много преимуществ и возможностей слияния BZR, сохраняя при этом преимущество размещения вашего кода на широко понимаемой платформе SVN.

Хотя я только что предложил BZR, в мирес открытым исходным кодом распределенные системы контроля версий (DVCS), многие люди, кажется, собираются с GIT .Я не предлагал этого, так как это заставляет пользователей учиться на SVN более крутой кривой обучения, и я думаю, что многие команды в дикой природе предпочли бы лучшую поддержку Windows и простоту использования BZR, а не преимущества GIT в отношении масштабируемости и скорости..

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

4 голосов
/ 30 августа 2010

Я бы пошел на подрывную деятельность.Он имеет более понятный интерфейс и более интуитивно понятен, чем ClearCase.В моей компании люди часто испытывают трудности с изучением ClearCase, а команды переходят на SVN.Еще одна веская причина для использования SVN в том, что он бесплатно .

3 голосов
/ 30 августа 2010

Обновление за ноябрь 2011: более чем через год я бы действительно посоветовал против ClearCase.

Теперь, когда IBM (2003) приобрела Rational ClearCase (* 100), совершенно очевидно, что в этом 25-летнем продукте не будет существенной эволюции.
последние функции могут все еще немного улучшиться (см.
примечания к выпуску для 7.1.1 ), и атомные проверки являются наконец частью продукта, но лежат в основе протокола связимежду клиентом и сервером все еще медленный и не может масштабироваться.

На самом деле, ClearCase был переписан с нуля и называется Jazz source control , часть Rational Team Concert product.
Эта новая версия (RTC 3.x) на самом деле довольно хороша, намного быстрее, чем ClearCase, и предлагает интересный способ изолировать свою разработку, учитывая частную фиксацию.

Сегодня DVCS, такие как Git, также являются хорошей альтернативой, но, поскольку я подробно описал в этом вопросе , это не тривиальный процесс для крупного предприятия.


Первоначальный ответ: август 2010:

ClearCase не сложен, но он сильно отличается от SVN.И довольно медленно;)
См. Введение в ClearCase .

Мне уже удалось заставить работать с другим деревом репозиториев, работающим напрямую в виде снимка.

Для больших проектов со сложным рабочим процессом слияния может стоить ClearCase (особенно ClearCase UCM).
Для более простого проекта (с точки зрения рабочего процесса слияния) достаточно SVN.

См. Также:

3 голосов
/ 30 августа 2010

Держись от этого подальше! У него есть некоторые функции, которые отсутствуют в svn (например, действия), но наверняка с 3 людьми в вашей команде не стоит.

2 голосов
/ 25 июня 2012

Если у вас нет выделенных администраторов ClearCase, никогда не подумайте об этом. У него действительно очень крутая кривая обучения. Я постоянно спотыкаюсь о проблемах с этим. Написание спецификаций конфигурации вручную настолько подвержено ошибкам, что это не так, плюс вы можете легко что-нибудь сломать, просто введя неправильное написание. Кроме того, вы попадете в ад-лейбл, поскольку вам нужно пометить все, что вам нужно, чтобы вернуться, поскольку нет никакой возможности дать вам определенное состояние в любое время, если вы не пометили его.

У меня никогда не было проблем с SVN. Я также сделал некоторые ветвления / слияния с SVN, а также с CC. Нет проблем с SVN, много с CC. Использование CC превращает многие вещи, которые должны быть No Events, в большие проблемы. Опять же, это без администраторов - поэтому компания, которая навязывает CC всем, но не оказывает поддержки. Не спрашивайте, какой ..

CC может быть эффективно использован, но .. Я бы сказал, что это вряд ли стоит дополнительных усилий. SVN легко работает для сценариев mosts, что, вероятно, является причиной того, что GIT и Mercurial так хорошо работают.

1 голос
/ 14 сентября 2010

IBM больше не собирается поддерживать ClearCase / ClearQuest, они заставляют своих пользователей переключаться на RTC (Rational Team Concert), который намного лучше, чем CC / CQ, и имеет совершенно другую идеологию (Jazz). Поэтому я бы не советовал вам использовать этот устаревший, устаревший и ужасный ад (с пользовательским интерфейсом из WIN 3.1).

0 голосов
/ 21 сентября 2011

CC - лучшая система контроля версий.Если у вас есть возможность использовать ClearCase - ДЕЛАЙТЕ ЭТО.Параллельная разработка действительно эффективна в случае использования CC.Если вы считаете, что ваш проект слишком мал для ClearCase, просто помните, что проекты обычно растут.Также вы можете получить новый проект (ы), который будет повторно использовать код, и вы можете получить большую команду.Таким образом, разработка растет, и вы будете вынуждены использовать более мощные VCS.

...