metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-08-10 01:38 am

Mercurial

В честь того, что у меня завтра отключают телефон в связи с "заменой телефонной линии", а так же пропаданиями света на сервере svn и отключением маньяками другого сервера, виртуального, вместе со всей вмварью, сижу изучаю сабж.
Сразу могу сказать, что ребе [livejournal.com profile] belnetmon будет несказанно рад тому, что его экспериментальные разработки можно будет коммиттить локально и созерцать их историю, ничего не меняя в основной ветке. Не говоря уже о том, что ему не нужно будет подключаться по GPRS из турции к центральному серверу для коммитов.


PS: Топки холокоста, оно .hg делает только в корне репозитория, это же позитив несравнимый с .svn в каждой папке рабочей копии subversion.

PPS: Как минимум, отключение интернетов мне уже пофиг - я уже две копии проектов одновременно запилил под hg и svn, т.е. смогу пилить в второй копии под hg, затем сделать push в первую и закомиттить в центральный svn по мере возможности.

[identity profile] kiryl.livejournal.com 2009-08-10 07:39 am (UTC)(link)
Мой топ фич git:
- git более unix-way, чем Mercurial. Можно делать практически всё из shell, вплоть до низкоуровневых операций над хранилищем. И не нужно лезть в Python.
- большое opensource-community. Больше opensource проектов используют git(из интересных мне проектов нет ни одного использующего hg). Большое сommunity разработчиков самого git, что позволяет быстрее реагировать на запросы пользователей.
- в git можно импортировать практически из любого другого SCM: Subversion, CVS, GNU Arch, Mercurial, Bazaar...
- локальные бранчи
- staging area: проще добиваться хорошей гранулированности изменений.

[identity profile] theiced.livejournal.com 2009-08-10 07:48 am (UTC)(link)
>- git более unix-way, чем Mercurial. Можно делать практически всё из shell, вплоть до низкоуровневых операций над хранилищем. И не нужно лезть в Python.

в меркуриале тоже самое. и не нужно никуда лезть.

>- большое opensource-community. Больше opensource проектов используют git(из интересных мне проектов нет ни одного использующего hg). Большое сommunity разработчиков самого git, что позволяет быстрее реагировать на запросы пользователей.

на мои запросы - говорил прямо с автором, отреагировали очень быстро ;]

>- в git можно импортировать практически из любого другого SCM: Subversion, CVS, GNU Arch, Mercurial, Bazaar...

а в меркуриал низя? ой вэй, я и не знал.

>- локальные бранчи

хито тут? какие могут быть НЕ локальные бранчи в распределённой системе?

>- staging area: проще добиваться хорошей гранулированности изменений.

а это кто?

[identity profile] kiryl.livejournal.com 2009-08-10 08:13 am (UTC)(link)
> в меркуриале тоже самое. и не нужно никуда лезть.

Есть аналоги cat-file и for-each-ref?

> хито тут? какие могут быть НЕ локальные бранчи в распределённой системе?

В mercurial можно не пушить отдельный бранч?

> а это кто?

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

[identity profile] theiced.livejournal.com 2009-08-10 09:14 am (UTC)(link)
>Есть аналоги cat-file и for-each-ref?

Это кто?

>В mercurial можно не пушить отдельный бранч?

Конечно. http://mercurial.selenic.com/wiki/LocalbranchExtension

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

http://mercurial.selenic.com/wiki/RecordExtension - оно? А то я не совсем понимаю что и зачем это.

В итоге имеем - красивая модульная штука vs кучка какашек.

[identity profile] kiryl.livejournal.com 2009-08-10 09:17 am (UTC)(link)
> Это кто?

Вам тоже вслух почитать?

> Конечно. http://mercurial.selenic.com/wiki/LocalbranchExtension

This extension is not distributed with Mercurial.

> В итоге имеем - красивая модульная штука vs кучка какашек.

Про какашки по-подробней, пожалуйста ;)

[identity profile] theiced.livejournal.com 2009-08-10 10:28 am (UTC)(link)
>Вам тоже вслух почитать?

прочитал man git-cat-file - ничего не понял, вообще ничего. git-for-each-ref - понял - но не вижу необходимости - приведите юз кэйс.

>This extension is not distributed with Mercurial.

вам религия не позволяет поставить?

>Про какашки по-подробней, пожалуйста ;)

при попытках сделать что нить с гитом всегда ощущение копания в кучке дерьма.

[identity profile] zamotivator.livejournal.com 2009-08-10 08:29 am (UTC)(link)
- git более unix-way, чем Mercurial. Можно делать практически всё из shell, вплоть до низкоуровневых операций над хранилищем. И не нужно лезть в Python.
В mercurial всё делается через консоль.
А killer feature hg glog у него нету!

- большое opensource-community. Больше opensource проектов используют git(из интересных мне проектов нет ни одного использующего hg). Большое сommunity разработчиков самого git, что позволяет быстрее реагировать на запросы пользователей.
Абстрактное бла-бла-бла. Под винду до сих пор у git'а проблем больше, в отличии от mercurial.

в git можно импортировать практически из любого другого SCM: Subversion, CVS, GNU Arch, Mercurial, Bazaar...
Смотря что понимать под "импортить". Я просто wc держу под hg и под svn
Ковертация репозитория? convert в hg.
А что ещё надо, по сути?

- локальные бранчи
hg help branch
Есть.

staging area: проще добиваться хорошей гранулированности изменений.
Что это?

[identity profile] kiryl.livejournal.com 2009-08-10 08:36 am (UTC)(link)
> А killer feature hg glog у него нету!

А за базар ответишь? ;)
git log --graph

[identity profile] zamotivator.livejournal.com 2009-08-10 08:40 am (UTC)(link)
Отлично.
В итоге равный счёт, ничья.

У mercurial отличная документация - разобраться с ним занимает ровно 40 минут. Чем крыть будешь?
Ссылки на progit не канают, там читать слишком дохуя.

Проблемы с вендой чем крыть будешь?

[identity profile] kiryl.livejournal.com 2009-08-10 08:58 am (UTC)(link)
> У mercurial отличная документация - разобраться с ним занимает ровно 40 минут. Чем крыть будешь?

http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html

> Ссылки на progit не канают, там читать слишком дохуя.

Классный аргумент! "Почитайте мне вслух!"

> Ссылки на progit не канают, там читать слишком дохуя.

Вцелом мне на винду по%#й. А какие там сейчас проблемы с http://code.google.com/p/msysgit/ ?
(deleted comment)

[identity profile] kiryl.livejournal.com 2009-08-10 09:14 am (UTC)(link)
> Не канает

Ну, не занаю. Я когда-то прочитал вот это:
http://git.kernel.org/?p=git/git.git;a=blob;f=README;h=80cc27913e449fbc25f2df1c515abc294ba9afde;hb=a3eb250f996bf5e12376ec88622c4ccaabf20ea8

а затем читал только маны. Всё понятно. До этого DVCS не использовал.

> Да и changelog'и + history просматривать в интерактивной гуйне объективно удобней.

Видимо, я не вписываюсь в вашу объективную реальность. Мне хватает git log. А от hg log у меня мозг ломается.

[identity profile] zamotivator.livejournal.com 2009-08-10 09:17 am (UTC)(link)
а затем читал только маны. Всё понятно. До этого DVCS не использовал.
Люди по-разному воспринимают информацию. Мне наличие картинок облегчает понимание, существенно облегчает.
Иначе как объяснить феномен популярности подкастов?
А видео-туториалов?

Видимо, я не вписываюсь в вашу объективную реальность. Мне хватает git log. А от hg log у меня мозг ломается.
Выводят они одно и тоже, если чо, и мозг ломается от обоих.
Как и от svn log.
Я приводил в пример hg glog.

[identity profile] zamotivator.livejournal.com 2009-08-10 09:19 am (UTC)(link)
* по разному
Дефис лишний...

[identity profile] kiryl.livejournal.com 2009-08-10 09:19 am (UTC)(link)
git'овое раскрашивание лога и вменяемое форматирование спасают мой мозг от повреждений. ;)

(no subject)

[identity profile] zamotivator.livejournal.com - 2009-08-10 09:21 (UTC) - Expand

[identity profile] zamotivator.livejournal.com 2009-08-10 09:07 am (UTC)(link)
Не канает. Вот почему git либо портянка (1, 2) либо short tutorial без пояснений?

В идеале должно быть так: 1, 2.

А из портянок вполне есть и The Definitive Guide.

Классный аргумент! "Почитайте мне вслух!"
Не передёргивайте.
Я на git, с чтением всех этих мануалов убил больше трёх десятков часов времени. Понимания не было НИХУЯ.
Пусть я тупой, а вы гений - не буду спорить.
Но работают обычные люди, как я. Потому и победил mercurial - внятной документацией, где спустя 40 минут я уже понимаю ЧТО это и КАК с этим работать.
Вот ВСЁ ОСТАЛЬНОЕ я доберу позже уже по адресным ссылкам.

Вцелом мне на винду по%#й. А какие там сейчас проблемы с http://code.google.com/p/msysgit/ ?
1) Ужасно неудобная настройка внешних утилит merge и diff
2) Дополнения типа git-svn есть лишь в cygwin, а cygwin и msys вместе дерутся
3) TortoiseGit падает, TortoiseHg работает и не жжужит. Не надо говорить "он не нужен", у нас работают в том числе и более обычные чем я, люди, который Gui нужен.
Да и changelog'и + history просматривать в интерактивной гуйне объективно удобней.

[identity profile] kiryl.livejournal.com 2009-08-10 09:14 am (UTC)(link)
Упс. ответил не туда...

[identity profile] zamotivator.livejournal.com 2009-08-10 09:17 am (UTC)(link)
Я тот коммент удалил из-за проблем форматирования.
Можете перенести ваш сюда.

[identity profile] theiced.livejournal.com 2009-08-10 09:17 am (UTC)(link)
кстати - для линупсов есть meld. интеграция с меркуриалом делается вот так:

[extdiff]
cmd.meld=

и потом пейшем hg meld вместо hg diff.

[identity profile] zamotivator.livejournal.com 2009-08-10 09:18 am (UTC)(link)
Да, подключение extension у mercurial делается на раз два три.
А поддержка "искаробки" winmerge, etc - +1000 к карме.

[identity profile] jek-hor.livejournal.com 2009-08-10 10:33 am (UTC)(link)
В git не сложнее. Параметр merge.tool=<"kdiff3"|"tkdiff"|"meld"|"xxdiff"|"emerge"|"vimdiff"|"gvimdiff"|"diffuse"|"ecmerge"|"tortoisemerge"|"opendiff"> или любой другой с указанием командной строки в merge..cmd.

[identity profile] theiced.livejournal.com 2009-08-10 10:58 am (UTC)(link)
а я хочу и hg diff и hg meld - для разных задач - разные тулы. так мона?

(no subject)

[identity profile] jek-hor.livejournal.com - 2009-08-10 11:30 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2009-08-10 12:09 (UTC) - Expand

[identity profile] lastwalrus.livejournal.com 2009-08-10 01:22 pm (UTC)(link)
под винду git svn "из каропки" не работает.

[identity profile] kiryl.livejournal.com 2009-08-10 02:19 pm (UTC)(link)
Только что поставил и сделал git svn clone. Работает. Что я делаю не так?

[identity profile] lastwalrus.livejournal.com 2009-08-10 02:32 pm (UTC)(link)
Не знаю что не так :)
ты какой ставил Git-1.6.4-preview20090730.exe или msysGit-fullinstall-1.6.4-preview20090729.exe ?


(no subject)

[identity profile] kiryl.livejournal.com - 2009-08-10 14:33 (UTC) - Expand

(no subject)

[identity profile] lastwalrus.livejournal.com - 2009-08-11 09:58 (UTC) - Expand