vcs

Git наступает

Dmitry Vasiliev 22:28, 2009 1 10

Что-то последнее время стали много писать про Git. Например:

Собственно, раньше у нас была единственная система контроля версий с открытым исходным кодом - CVS. Затем появилась "лучшая CVS" - Subversion. Но теперь многие открытые проекты потихоньку переходят на распределенные системы контроля версий и здесь у нас уже несколько игроков, основные из которых: Git, Bazaar и Mercurial. У каждой из систем есть свои достоинства и недостатки, но и PR кампания тоже может иметь большое значение. Многие пользователи, начинающие знакомиться с распределенными системами, обычно выбирают, что-то наиболее популярное и пока больше всего шуму производят последователи Git.

Comments All comments

Comment by Konstantin Khomoutov on 03:27, 2009 1 11

Konstantin Khomoutov's Gravatar

Против git у меня есть всего два, но зато веских возражения:
1) Я искренне желаю удачи парням из msys-git, но пока ещё git не готов для использования в винде. Я знаю одного серьёзного разработчика, который успешно использует гит в винде, но когда я его там пробовал, объём геморроя был несопоставим с предполагаемой выгодой от перехода с svn. К виндам можно относиться по-разному, но в случае разработки кроссплатформенного кода VCS должна одиинаково хорошо работать в любой целевой системе; у svn это было центральной идеей, у git -- нет.
2) Мне совершенно не нравится то, что у него нет аналога svnserve. Git не предполагает такой же гибкой системы к "общему" репозиторию, как svn. Я понимаю, что он распределённый, но центральная ветка у любого проекта обычно бывает, и вот организация доступа к ней в Git сделана через одно место.

Сравнивать с другими системами не могу, так как не знаком. Мне на работе нужно что-то такое, что превосходно работает в винде, и тут похоже у сабвершена нет конкурентов среди свободных/открытых систем, хотя я понимаю потенциальные преимущества DVCS...

Comment by Bo Maryniuk on 05:39, 2009 1 11

Bo Maryniuk's Gravatar

Я за. Лично очень сильно «ударился» в распределенные системы, особенно после когда багоглючный SVN мне запорол всю репу. Пересмотрел лучшие и остановился на Mercurial. Bazaar тоже ничего, но Mercurial все-же лучше по своей простоте и мощности. OpenSolaris как-раз на нем, также как и OpenJDK и другие, например Mozilla (http://hg.mozilla.org).

P.S. К тому-же, работая много с Java, для меня важна интеграция с IDE, и hg единственная система, которая великолепно поддерживается в NetBeans IDE. :-)

Comment by Dmitry Vasiliev on 12:35, 2009 1 11

Dmitry Vasiliev's Gravatar

> Konstantin Khomoutov:
> Против git у меня есть всего два, но зато веских возражения:

Вот как-раз то, о чем я говорил в заметке - получается, что ты ассоциируешь Git с DVCS вообще. И так делают многие, кто пока использует Subversion, т.к. поклонники Git произносят больше всего хвалебных речей. :-)

Мне лично нравится Bazaar и для меня есть как минимум пара моментов даже без оглядки на возможность распределенной работы (кстати Bazaar можно использовать и в полностью централизованных сценариях):

- Подключаемые модули. Хотя в Subversion есть скрипты, но подключаемые модули позволяют делать намного больше;

- Возможность свободного перемещения файлов/директорий без необходимости фиксации изменений. Например, если в Subversion перенести папку, а потом попытаться что-нибудь из нее перенести, то тебе говорят, что нужно сначала сделать фиксацию. Помню я на это часто натыкался т.к. люблю рефакторить - пакет сюда, пакет туда. :-) С Bazaar же можно двигать файлы и директории как угодно без необходимости фиксации.

Bazaar (и наверняка Mercurial тоже) неплохо работает на винде, в том числе есть инсталлятор и графический интерфейс (хотя он пока еще в активной разработке).

Вот с удаленным доступом есть проблемы - через SSH обычно всех не запустишь, а bzr serve слишком тупой. Пока ходим через WebDAV (https://code.launchpad.net/~bzr/bzr.webdav/webdav), но в этом случае сервер используется только как хранилище и соотв. нельзя использовать подключаемые модули и т.п.

Comment by Dmitry Vasiliev on 12:56, 2009 1 11

Dmitry Vasiliev's Gravatar

> Bo Maryniuk
> P.S. К тому-же, работая много с Java, для меня важна интеграция с IDE...

IMHO с интеграцией и всякими WEB-интерфейсам пока проблема у всех. Интерфейсы, если и есть, то пока слишком сырые, а интеграции для многих вещей и вообще нет.

Comment by Konstantin Khomoutov on 03:16, 2009 1 12

Konstantin Khomoutov's Gravatar

Забавно, что тот же день в некотором блоге прочитал про средство облегчённого хостинга репозиторив Git -- gitosis: http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

Но посмотреть на Mercurial действительно хочу. Кроме того, к нему начали делать TortoiseHg; в виндах это не просто плюс, а плюсище, учитывая печальное состояние консоли там.

Кстати, ещё один камрад настойчиво советовал посмотреть Monotone. Развелось этих систем... :)

Comment by Dmitry Vasiliev on 09:17, 2009 1 12

Dmitry Vasiliev's Gravatar

Кстати, TortoiseBzr (http://bazaar-vcs.org/TortoiseBzr) в стандартной поставке начиная с версии Bazaar 1.6. Кроме того этим делом сейчас занимается видимо самый первый чувак в мире Python для Windows - Mark Hammond (http://starship.python.net/crew/mhammond/).

Да, систем развелось. :-) Я добавил еще ссылки на Codeville, Darcs и Monotone (они были в одной из первых версий статьи) к статье про Bazaar (http://hlabs.org/development/versions/bazaar.html).

Comment by bialix on 18:25, 2009 1 12

bialix's Gravatar

GNOME еще не остановил свой выбор. Это пока только сбор мнений. Однако тенденция налицо!

Comment by bialix on 18:29, 2009 1 12

bialix's Gravatar

Monotone -- из предыдущего поколения распределенных систем. Оттуда же родом Darcs и Arch.

Comment by bialix on 18:33, 2009 1 12

bialix's Gravatar

Насчет этого: http://whybzrisbetterthanx.github.com/

Похоже гит-ребята начинают не только белый PR "за", но и черный PR "против". Знали бы они насколько неуклюжий hg после bzr (по ограниченному внутреннему дизайну, а не по столь часто восхваляемой скорости).

Comment by Dmitry Vasiliev on 21:28, 2009 1 12

Dmitry Vasiliev's Gravatar

> bialix:
> Monotone -- из предыдущего поколения распределенных систем. Оттуда же родом Darcs и Arch.

"Эх, не спешите нас хоронить..." (C) :-) Может Monotone и Darcs и из предыдущего поколения, но по релизу в конце прошлого года они исправно выпустили - значит это кому-то нужно. А вот Codeville и GNU Arch похоже загнулись. Может и вообще придет неизвестный пока игрок и все текущие системы станут предыдущим поколением... ;-)

Comment by Dmitry Vasiliev on 21:33, 2009 1 12

Dmitry Vasiliev's Gravatar

> bialix:
> Насчет этого: http://whybzrisbetterthanx.github.com/

Может сделать поддомен theonlyrightsourceforwhygitisbetterthanx и там все, что надо написать? :-)

Comment by Konstantin Khomoutov on 21:41, 2009 1 12

Konstantin Khomoutov's Gravatar

По поводу неизвестных игроков... ;-)

Поскольку я тут, в силу интересов, наблюдаю за развитием Tcl, имею доложить, что создатель SQLite товарищ dr. Richard Hipp куёт собственную DVCS-систему Fossil: http://www.fossil-scm.org

Я не думаю, что она вылезет из ниши, но некоторые вещи в ней интересны (смотрел лично):
1) Встроенные (распределённые) багтрекер и вики.
2) Состоит из одного исполняемого файла (в винде и линуксе, к другим системам доступа не имею), который умеет работать как standalone на десктопе в двух режимах -- как ковырялка собственной БД с данными (аки git и проч.) и как локальный вебсервер, предоставляя доступ к админскому интерфейсу, вики и багтрекеру.

БД хранится, что неудивительно, в SQLite, то есть движок + БД представляют собой два файла, которые можно таскать по машинам (ну и плюс рабочий каталог, понятное дело, в боевом положении).

Вот тут, собственно, то же самое другими словами: http://www.fossil-scm.org/index.html/doc/tip/www/qandc.wiki

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

Comment by Konstantin Khomoutov on 21:42, 2009 1 12

Konstantin Khomoutov's Gravatar

Чёрт, в п.2 забыл добавить "..., а так же как CGI-приложение или самодостаточный сервер для inetd". ;-)

Comment by Dmitry Vasiliev on 22:12, 2009 1 12

Dmitry Vasiliev's Gravatar

Вроде я когда-то слышал про этот Fossil, но видимо прошел мимо, т.к. на мой взгляд немного монструозная идея (все в одном). :-) И что значит *распределённые* багтрекер и вики? Можно тикеты и записи объединять из разных источников?

Comment by bialix on 23:52, 2009 1 12

bialix's Gravatar

> "Эх, не спешите нас хоронить..." (C)
я не хороню, это собственно факт. codeville зародился в тоже время, что и git/hg, но он был ориентирован на проблему создания супер-классного merge-алгоритма, был беспощадно раскритикован Линусом и со временем канул в лету.

Comment by bialix on 23:53, 2009 1 12

bialix's Gravatar

ага, в monotone тоже внутри используется база sqlite. вся написана на качественном С++, а расширения/хуки писать на луа.

Comment by Andrey Popp on 21:44, 2009 1 18

Andrey Popp's Gravatar

git в картинках под Windows ;)
http://nathanj.github.com/gitguide/index.html

Comment by Иван on 23:18, 2009 7 1

Иван's Gravatar

>git в картинках под Windows ;)
>http://nathanj.github.com/gitguide/index.html

Отличная демонстрашка. Спасибо за ссылку.

Add comment

Name:
Email: (Never will be published.)
Web site:
Comment: (Paragraphs divided by empty lines, line breaks and links will be automatically formatted.)