Zigmar ([info]zigmar) wrote in [info]ru_programming,
@ 2005-06-20 23:44:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
source control
А кто какие системы для контроля исходников использует и что про них думает?

Из того что я использую/использовал:
Rational/IBM "ClearCase" (на работе) - очень мощная вещь, но относительно очень сложная, и берет кучу времени разобраться, относительно глючная (причём когда глючит, то глючит так что без пол литра не разобраться). После того как я с ним разобрался - работать было довольно удобно. Но для него надо иметь отдельного full-time человека, для администрации. Из интересных фичеров - "config spec" - набор правил который определят какие версии брать. Позволяет легко вытаскивать файлы по сразу нескольким параметрам - дате, лейбелам(тагам), веткам.

"ClearCase UCM" (Unified Change Management) - ужасная надстройка над ClearCase-ом, призванная "упорядочить" работу, на деле просто целая куча триггеров и метадаты. Всё это глючит ужасно, работать с этим неудобно, и вообще сильно ограничивает. Нам такую гадость поставили, все девелоперы до сих пор плюются.

CVS - и так понятно. ИМХО, не очень удобно (в плане интерфейса). Плюс отсутствие системы контроля версий для папок (а как следствие отсутствие возможность переименовывать и перетаскивать файлы) очень затрудняет рефакторинг.

SVN (Subversion) - пока почти самое удобное и простое из того что я нашёл. Юзаю дома. Очень простой и удобный интерфейс, и очень легко ставить и настраивать. Собственно, когда мне, с парой знакомых понадобилось сделать одну лабораторку на троих - у меня взяло где-то полчаса поднять сетевой сервер, репозиторий кода и настроить пользователей. Всё это включая время на чтение документация и разбирания что к чему, так как делал я это первый раз. Это под виндузом. Под юниксом, всё ещё проще по идее должно быть. Subversion - это по сути исправленный и почищенный CVS - интерфейс улучшили, администрацию упростили, и недостающие фичеры добавили (metadata, directories versioning, binary diffs, i18n, etc).

С остальными знаком только по наслышке. Было-бы интересно послушать кто чего про разные такие системы думает. Например про VSS я вообще только отрицательные отзывы слышал - он действительно так плох, и если да - то чем?



(Post a new comment)


[info]cyberzx
2005-06-20 10:06 pm UTC (link)
на работе пользуемся VSS. впечатления от него крайне негативные. во-первых, когда забираешь или отдаешь проект машина полностью зависает, Visual Studio перестает как-либо реагировать, при том что машины у нас топовые(P4 3.2/2GB ram) и сетка весьма быстрая. вроде бы мелочь, но очень сильно парит ждать по несколько минут пока комп отвиснит. ну естесственно никаких бранчей, тагов нет. если вдруг вздумаеться сделать глобальный рефакторинг, надо забирать весь чекаутить весь проект, что тоже весьма накладно. бывали случаи, когда код бесследно пропадал. вроде человек отдал на сервер новую версию, а там лежит старая. он забирает обновление проекта себе, и его новая версия заменяеться старой. редко, но и такое бывало.
лично для меня CVS по сравнению с VSS нечто сказачное :)

(Reply to this) (Thread)


[info]vromanov
2005-06-21 05:11 am UTC (link)
Как так нет бранчей? А что вы подразумеваете под тегами?
Еще есь удобная возможность шарить файлы по разным катологам.

(Reply to this) (Parent)(Thread)

(no subject) - [info]zigmar, 2005-06-21 06:14 am UTC
(no subject) - [info]vromanov, 2005-06-21 06:40 am UTC
(no subject) - [info]slonc, 2005-06-21 07:20 am UTC
(no subject) - [info]cyberzx, 2005-06-21 07:52 am UTC
(no subject) - [info]rblaze, 2005-06-21 09:40 am UTC
(no subject) - [info]slonc, 2005-06-21 10:29 am UTC
(no subject) - [info]rblaze, 2005-06-21 10:48 am UTC
(no subject) - [info]slonc, 2005-06-21 10:53 am UTC
(no subject) - [info]rblaze, 2005-06-21 11:01 am UTC
(no subject) - [info]slonc, 2005-06-21 11:03 am UTC
(no subject) - [info]pewee9, 2005-06-22 09:11 pm UTC
(no subject) - [info]slonc, 2005-06-22 09:19 pm UTC
(no subject) - [info]degor, 2005-06-21 07:46 am UTC

[info]polosatik
2005-06-20 10:23 pm UTC (link)
Спасибо за SVN - запомню на будущее.
До этого пользовался VSS и CVS. Первое показалось гораздо лучшим.

(Reply to this) (Thread)


[info]alexandr0
2005-06-20 10:31 pm UTC (link)
Позволяет ли VSS параллельную модификацию одного файла несколькими пользователями?

(Reply to this) (Parent)(Thread)

(no subject) - [info]polosatik, 2005-06-21 12:05 am UTC
(no subject) - [info]name_fa, 2005-06-21 03:17 am UTC
А ето как, простите? - [info]dem4nd, 2005-06-21 08:54 am UTC
Re: А ето как, простите? - [info]degor, 2005-06-21 09:10 am UTC
Re: А ето как, простите? - [info]lair, 2005-06-21 09:38 am UTC
Re: А ето как, простите? - [info]slonc, 2005-06-21 10:32 am UTC
Re: А ето как, простите? - [info]name_fa, 2005-06-21 05:31 pm UTC
спасибо - [info]dem4nd, 2005-06-22 10:37 am UTC
(no subject) - [info]makar_007, 2005-06-21 12:28 pm UTC
(no subject) - [info]alexandr0, 2005-06-21 12:32 pm UTC
(no subject) - [info]makar_007, 2005-06-21 03:09 pm UTC
(no subject) - [info]zigmar, 2005-06-21 03:41 pm UTC
(no subject) - [info]makar_007, 2005-06-21 03:50 pm UTC
(no subject) - [info]alexandr0, 2005-06-21 04:27 pm UTC
(no subject) - [info]makar_007, 2005-06-22 09:04 am UTC
(no subject) - [info]alexandr0, 2005-06-22 09:09 am UTC
(no subject) - [info]makar_007, 2005-06-22 10:05 am UTC
(no subject) - [info]gdy, 2005-06-21 03:23 pm UTC
В очередь .... - [info]makar_007, 2005-06-21 03:33 pm UTC

[info]levgem
2005-06-20 10:48 pm UTC (link)
т.е. ты настоятельно рекомендуешь subversion? Чем именно он тебе нравится по сравнению с CVS?
Я сейчас использую CVS, но только для того, что бы можно было спокойно сливать правки из разных мест.

(Reply to this) (Thread)


[info]zigmar
2005-06-21 06:17 am UTC (link)
По мне так - он проще, удобнее и приятнее. Сотвенно - subversion - это логическое продолжение CVS, его и писала как раз для его замены - просто иправили недостатки CVS, но не стали придумывать чего-то карлинально новое.

(Reply to this) (Parent)(Thread)

(no subject) - [info]levgem, 2005-06-21 07:10 am UTC
(no subject) - [info]cyberzx, 2005-06-21 07:49 am UTC
(no subject) - [info]levgem, 2005-06-21 07:51 am UTC

[info]sply
2005-06-20 11:09 pm UTC (link)
и CVS, и Subversion. Но больше первый.

(Reply to this)


[info]alexis_m
2005-06-21 12:07 am UTC (link)
Когда-то смотрел на Borland TeamSource. Тогда уперся в недвижимость репозитория и еще какие-то бяки. А может не нашел просто.
Сейчас пользуемся svn-ом. Пока довольны. С CVS работать не приходилось.

(Reply to this)


[info]cybem
2005-06-21 01:24 am UTC (link)
Сейчас из некоммерческих систем (да и из коммерческих - тоже) мейнстримом являются svn и gnu arch/tla. Второй предназначен, в основном, для распределенных репозиториев (a-la BitKeeper). Обе эти системы поддерживают переименование/удаление/перенос файлов, атомарные коммиты и прочие современные требования.

tla представляет собой, как бы некий навороченный распределенный diff/patch, со своими вкусностями и особенностями. Из минусов - относительно сложен в освоении (хотя документация и тьюториалы - обширны и понятны), сложные ключи, относительная медлительность, отсутствие GUI-клиентов и пока плохая интеграция со средствами разработки. Из плюсов - star merge (*merge) и другие навороты по управлению репозиториями, zero config.

Для централизованной системы, безусловно, svn - лидер. Доступ через WebDAV, HTTP, SSH, наличие хорошей документации, простота освоения, прозрачный переход с CVS, наличие большого количества GUI-клиентов и хорошая интеграция практически со всеми популярными средами разработки, проверен годами и объемами репозиториев. Минусы - продолжение плюсов (единый репозиторий в BerkleyDB, несколько обстрактных слоев со своим API), пока не всегда "честен" в внутренних операциях (move представляется не как move, а как delete и commit). После SVN - использование коммерческих систем выглядит недоразумением.

Есть еще несколько популярных в своем кругу систем со своими достоинствами и особенностями. Например, darcs, monotone и так далее.

(Reply to this) (Thread)


[info]zigmar
2005-06-21 06:20 am UTC (link)
Про arch я читал когда-то что он сознательно начинался как читсто юниксовский проект, и что поддержка не-юникс систему там до сих пор достаточно паршивая. А кроссплатфермость SCM-ов это очень важдый параметер.
Чего-нибудь исправилось с тех пор?

(Reply to this) (Parent)(Thread)

(no subject) - [info]slonc, 2005-06-21 07:28 am UTC
(no subject) - [info]zigmar, 2005-06-21 09:58 am UTC
(no subject) - [info]slonc, 2005-06-21 10:07 am UTC
(no subject) - [info]zigmar, 2005-06-21 10:12 am UTC
(no subject) - [info]slonc, 2005-06-21 10:27 am UTC
(no subject) - [info]cybem, 2005-06-21 03:43 pm UTC
(no subject) - [info]zigmar, 2005-06-21 06:22 am UTC
(no subject) - [info]yolff, 2005-06-21 06:48 am UTC

[info]dpak0h
2005-06-21 01:45 am UTC (link)
от себя добавлю ещё пожелание посмотреть на darcs и приладу к svn под названием svk.

(Reply to this)


[info]harvi
2005-06-21 04:01 am UTC (link)
Sun TeamWare aka SCCS. мощный и удобный. но стоит денег и не знаю, существует ли на другой платформе, кроме Solarisa.

(Reply to this) (Thread)


[info]flom
2005-06-21 05:41 am UTC (link)
Чего-то мне было как-то нее то чтобы слишком мощно и не совсем удобно при работе в этой штукуёвиной %))) Чем он лучше CVS?

(Reply to this) (Parent)(Thread)

(no subject) - [info]harvi, 2005-06-21 06:08 am UTC
(no subject) - [info]flom, 2005-06-21 06:13 am UTC
(no subject) - [info]harvi, 2005-06-21 06:16 am UTC
(no subject) - [info]bodun, 2005-06-21 08:31 am UTC
(no subject) - [info]flom, 2005-06-21 09:03 am UTC

[info]harvi
2005-06-21 04:03 am UTC (link)
кстати, по-моему, подобное обсуждение уже имело место здесь год назад примерно.

(Reply to this) (Thread)


[info]zigmar
2005-06-21 06:24 am UTC (link)
Что-то не припомню, хотя я где-то года два читаю это сообщество. Хотя, конечно, мог и пропустить.

(Reply to this) (Parent)(Thread)

(no subject) - [info]harvi, 2005-06-21 06:33 am UTC

[info]whoozle
2005-06-21 04:55 am UTC (link)
у нас почти везде svn. заметно быстрее cvs для больших проектов. :)

(Reply to this)


[info]vromanov
2005-06-21 05:14 am UTC (link)
ПОльзую perforce на работе. Относительно тормозной. Неудобная среда,багов вроде сильных нет, но есть куча недоработок. Например визуальная мержилка не позволяет для какого-то конфликта взять изменения из ОБОИХ файлов.

(Reply to this) (Thread)


[info]vromanov
2005-06-21 05:15 am UTC (link)
А еще - нет возможности заблокировать файл, чтобы другие не могли его взять на редактирование.

(Reply to this) (Parent)(Thread)

(no subject) - [info]vromanov, 2005-06-21 05:15 am UTC
(no subject) - [info]rblaze, 2005-06-21 09:50 am UTC
(no subject) - [info]vromanov, 2005-06-21 01:16 pm UTC
(no subject) - [info]rblaze, 2005-06-21 01:20 pm UTC
(no subject) - [info]vromanov, 2005-06-21 01:23 pm UTC
(no subject) - [info]rblaze, 2005-06-21 01:26 pm UTC

[info]voidlizard
2005-06-21 05:32 am UTC (link)
Perforce. Говорят самое лучшее, из того что есть, но платный.


>>Например про VSS я вообще только отрицательные отзывы слышал - он >>действительно так плох, и если да - то чем?


VSS это такое дерьмо, что его в приличном обществе дажу упоминать не стоит. У меня стоит на работе, в силу местной ползучей ориентированности на продукты M$, через это я очень страдаю. Такой хлам, что даже сразу и не скажешь, чем именно он плох. Плохо все - начиная от терминологии, которая отличается от остальных vcs, все эти chek-in check-out get-lates-version вместо up, commit - я например, до сих пор запомнить не могу. Интерфейс совершенно угребищный - для совершения простейших действий приходится много возить мышью... В общем, всем.

IMHO, Subversion - это оптимум, если ничего такого особенного не нужно.

(Reply to this) (Thread)


[info]harvi
2005-06-21 06:15 am UTC (link)
терминология "check in, check out" используется не только в VSS.

(Reply to this) (Parent)(Thread)

(no subject) - [info]voidlizard, 2005-06-21 06:19 am UTC
(no subject) - [info]vromanov, 2005-06-21 06:41 am UTC
(no subject) - [info]vromanov, 2005-06-21 06:42 am UTC
(no subject) - [info]voidlizard, 2005-06-22 03:18 am UTC
(no subject) - [info]lair, 2005-06-21 09:40 am UTC
(no subject) - [info]voidlizard, 2005-06-22 03:27 am UTC
(no subject) - [info]makar_007, 2005-06-21 12:27 pm UTC

[info]sb16
2005-06-21 05:34 am UTC (link)
hands.exe (:

(Reply to this) (Thread)


[info]zigmar
2005-06-21 06:26 am UTC (link)
А где соурсы от hand.exe хранишь?

(Reply to this) (Parent)


[info]upstartn
2005-06-21 05:47 am UTC (link)
Уже много лет используем VSS в связке с SourceOffSite. Глюки есть, но довольно в умеренном количестве.

(Reply to this)


[info]zaza
2005-06-21 05:48 am UTC (link)
CVS поставить так и не удалось (ну не от туда руки видать), по этому выбор пал на SVN. SVNСервером доволен как слон - установился быстро, без хлопот и проблем (как на Апаче, так и СтандАлоун сервис с Windows Resource Kit). Работает стабильно (тфу тфу тфу), пока без глюков, не трабует особого внимания, кроме своевременного обнавления. Впечатляют и клиенты к этой штуке ввиде ТортоисеСВН - удобно и быстро, а вот РапидСВН мне совсем не понравился. Документация тоже на высоте. Я не знаю как у других систем - здесь радует наличие ХУКОВ, которые можно писать и настраивать самому.

Правда не нашёл как сделать экспорт (именно экспорт) изменений от ревизии Н до ревизии М, кроме как писать своё что-то, а для некоторых проектов это бывает необходимо. Разработки ведуться на PHP, кучи HTML кода, народ за день сделает кучу комитов - сделать полный экспорт и залить на удалённый сервер всё сразу - не всегда логично, делать сравнения - тоже занимает не мало времени и не всегда разумно и точно - а так было бы удобнее. Здесь пока обошёлся хуком на пост-комите, который файлы комита складывает отдельную папку с номером комита на диске.

(Reply to this) (Thread)


[info]zigmar
2005-06-21 06:28 am UTC (link)
А разве "svn diff -rN:M" это не то?

(Reply to this) (Parent)(Thread)

(no subject) - [info]zaza, 2005-06-21 06:53 am UTC
(no subject) - [info]zigmar, 2005-06-21 07:05 am UTC
(no subject) - [info]zaza, 2005-06-21 07:13 am UTC
(no subject) - [info]cybem, 2005-06-21 03:49 pm UTC
(no subject) - [info]zaza, 2005-06-22 06:57 am UTC

[info]spb_nick
2005-06-21 06:25 am UTC (link)
GNU Arch (tla)

(Reply to this)


[info]levgem
2005-06-21 07:19 am UTC (link)
Хотел сразу свою проблему описать, наверное она не очень то специфична.
У меня есть репозиторий с кодом движка и два репозитория с веб сайтами.
Соответственно, код движка существует в двух экземплярах:
В папке site1 вперемешку с кодом сайта (стили, шаблоны и т.д.) и
в папке site2.
Соответственно, какая структура:
site1/ тут index.php, который от движка. Соответственно, в CVS/Repository написано engine,
и есть папка templates, внутри которой в CVS/Repository написано site1/templates.

Таких хитрым извращенным образом все работает.
Есть ли способ добиться того же попроще?

(Reply to this) (Thread)


[info]enox
2005-06-21 08:51 am UTC (link)
CVSROOT/modules, насколько я понимаю. Там можно делать "нарезки" из разных частей репозитория, формируя разные деревья из произвольных модулей.

(Reply to this) (Parent)(Thread)

(no subject) - [info]levgem, 2005-06-21 07:33 pm UTC
(no subject) - [info]zigmar, 2005-06-21 10:25 am UTC

[info]enox
2005-06-21 08:49 am UTC (link)
При использовании связки SVN+VS+ASP.NET натыкаешься на крайне неприятный баг в VisualStudio (http://www.peterprovost.org/archive/2004/04/13/1160.aspx). Насколько я понимаю, необходимо пересобирать subversion и использовать только пересобранный вариант. Одна из причин, по которой наша контора покамест не перешла на SVN с CVS

(Reply to this)


[info]rblaze
2005-06-21 09:39 am UTC (link)
Source Safe ужасен. Не пригоден практически ни для чего. Работы с ветками считай что нет, это осознается после первой же попытки слияния изменений из ветки в основную линию. Тормозной и чудовищно толстый.

Я остановился на perforce.

(Reply to this) (Thread)


[info]slonc
2005-06-21 10:40 am UTC (link)
Ne soglasen.
Mi 3 goda veli proekt na VSS (6 chelovek - 3000 sources - 3 vetki).
Ne bilo NIKAKIH problem. Problemi nachalis' kogda mi vishli za opisannie predeli. I togda mi preshli na Borland StarTeam.

(Reply to this) (Parent)(Thread)

(no subject) - [info]rblaze, 2005-06-21 10:54 am UTC
(no subject) - [info]ilya666, 2005-06-21 11:55 am UTC
(no subject) - [info]rblaze, 2005-06-21 12:01 pm UTC

[info]cybem
2005-06-21 04:03 pm UTC (link)
Несколько ссылок на альтернативные системы:

PRCS - http://prcs.sourceforge.net/
darcs - http://abridgegame.org/darcs/
monotone - http://www.venge.net/monotone/
DCVS - http://www.elegosoft.com/index_dcvs.html
Aegis - http://aegis.sourceforge.net/
Stellation - http://www.eclipse.org/stellation/
Meta-CVS - http://users.footprints.net/~kaz/mcvs.html
OpenCM - http://www.opencm.org/
Vesta - http://www.vestasys.org/
svk - http://svk.elixus.org/

Статья Алекса Отта об использовании Emacs совместно с системами контроля версий:
http://xtalk.msk.su/~ott/ru/emacs/emacs-vcs/emacs-vcs.ru.html

(Reply to this)


[info]honeyman
2005-06-21 04:24 pm UTC (link)
Проприетарная разработка. Поэтому предпочту на всякий случай промолчать как о названии, так и о компании-разработчике.
Имеет собственный интерактивный (консольный, но не curses, похоже) интерфейс, множество операторов и функций (т.е., собственный псевдоязык создания запросов; также есть достаточно простая возможность писать внешние команды на любых языках, в т.ч. скриптовых). Кроме неё, работал только с CVS и слышал только про SVN, но похоже, что наша штука как минимум на уровне SVN.
Брэнчинг (т.н. стримы и патч-стримы для основных стримов), атомарный коммит (все файлы в рамках одного апдейта проходят как одна сущность), интеграция (я же сказал — это по сути среда, а не отдельный командный тул) с компилятором-линкером (так что сборка всего продукта проходит как отдельная команда под этой средой) и даже с редактором/вьюером, понятие «текущей версии» файла/модуля (тот, который будет компилироваться, и относительно которого производится линковка), понятие «контекста» (срез всех «текущих версий» на какой-то момент времени; т.е., можно поставить контекст того момента, который был на момент еженедельного билда). Все эти контекстные фенечки не от балды придуманы, а напрямую необходимы для разрабатываемого проекта (ибо оный поддерживает динамическое обновление модулей без перезагрузки). Для них, в общем-то, та система запросов и полезна («найти версии из текущего контекста всех окончательно закоммиченных модулей в таком-то стриме, которые содержат некоторую подстроку», «откомпилировать и отлинковать модуль и все зависящие от него, в т.ч. транзитивно, модули»).

(Reply to this) (Thread)


[info]honeyman
2005-06-21 04:30 pm UTC (link)
Чуть не забыл: возможности прикрутки пре-поствалидации и пре-постпроцессинга к коммитуемым данным; интеграция с системой контроля качества (так, что, с одной стороны, индексы запросов об исправлении или названий новых функциональностей используются системой как объяснения коммита, а с другой, коммит способен повлиять на статус запроса об исправлении в СКК).
Вот чего нет — это мёржинга хоть какого. Если в момент коммита выясняется, что с момента начала изменений состояние репозитория изменилось — весь коммит не проходит, и его надо мёржить руками, такой-то матерью и тулзой merge из RCS.
Зато поддерживает не только исходники, но и документы, и также способен пре/пост-процессить/валидировать и их тоже.
И завершающее: версии под Windows не встречал. Под Linux, по правде говоря, тоже :)

(Reply to this) (Parent)


[info]zlev
2005-06-21 07:57 pm UTC (link)
Никогда не было никаких проблем с VSS. Есть все, что душа пожелает, и брэнчи и все-все-все. Единственная проблема - денежная, да и под линуксом не бежит( а у нас часть клиентов линуксоиды ).
Перешли на CVS, по сравнению с VSS дерьмо, однако возможно улучшить скриптописанием... Посадили человека, привел это дело в более-менее вид...
Недостатки у VSSа возникают при неумении его устанавливать...

(Reply to this) (Thread)


[info]voidlizard
2005-06-22 05:57 am UTC (link)
Установите мне VSS снаружи корпоративной сети, из которой есть выход только через http проксю.

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

Установите мне VSS на хостинге провайдера, что бы с ним могли работать удаленные разработчики. Желательно, секьюрно, с шифрованием трафика.

(Reply to this) (Parent)(Thread)

(no subject) - [info]zlev, 2005-06-22 09:57 am UTC

(Anonymous)
2005-06-24 06:30 am UTC (link)
Не упомянута ещё одна система:
Code Co-op v4.5d Released 03/05
The Peer-to-peer Version Control System for Distributed Teams
http://www.relisoft.com/co_op/

А вообще есть хороший ресурс, который поддерживается в актуальном состоянии:
Version Control System Comparison
http://better-scm.berlios.de/comparison/comparison.html

(Reply to this)


[info]ingstel
2005-08-08 09:47 am UTC (link)
Почему-то никто не упомянул CM Synergy aka Continuus. Мощная коммерческая система, сравнимая по функциональности c ClearCasе. Работает совместно с CR/PR management системой ChangeSynergy. Поэтому дорогая, вертится на сервере, требует грамотного администрирования.

(Reply to this)


Create an Account
Forgot your login or password?
Login w/ OpenID
English • Español • Deutsch • Русский…