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] 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)
> Не канает

Ну, не занаю. Я когда-то прочитал вот это:
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] 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:14 am (UTC)(link)
Упс. ответил не туда...

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

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

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

[extdiff]
cmd.meld=

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

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

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

[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'овое раскрашивание лога и вменяемое форматирование спасают мой мозг от повреждений. ;)

[identity profile] zamotivator.livejournal.com 2009-08-10 09:21 am (UTC)(link)
Раскрашивание и у mercurial есть (:

[identity profile] metaclass.livejournal.com 2009-08-10 09:46 am (UTC)(link)
Не говоря уже о том, что я смогу в принципе дома сделать один центральный репозиторий, куда буду вытаскивать changeset-ы с работы, а затем растаскивать по трем рабочим компам дома. В три раза уменьшение трафика и времени фактически.

[identity profile] jek-hor.livejournal.com 2009-08-10 10:26 am (UTC)(link)
Именно. У svn остался только один плюс, но и тот сомнительный --- работа с подпроектами.

[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] 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] jdevelop.livejournal.com 2009-08-10 10:44 am (UTC)(link)
гит мну нра


хотя пару сексов с detached head вынесло мозг на час, пока не разобрался

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

[identity profile] avnik.livejournal.com 2009-08-10 11:12 am (UTC)(link)
У меня после года использования сложилось так:
hg когда кому то из участников нужна винда, проект на pure python, или нужен push over http.

Для больших проектов лучше гит.


PS После года использования hg гит уже не кажется таким марсианским.
PPS про гит хорошо git magic почитать -- оно немарсианское.

[identity profile] jek-hor.livejournal.com 2009-08-10 11:30 am (UTC)(link)
git mergetool -t

[identity profile] theiced.livejournal.com 2009-08-10 12:09 pm (UTC)(link)
вах - неудобно ;]

[identity profile] gds.livejournal.com 2009-08-10 12:37 pm (UTC)(link)
почему-то гитовцы абижаются, когда их просят склонировать пустой репозиторий.
А чтобы понять причины невозможности этого по умолчанию, мне потребовалось прочитать цикл статей про внутреннее устройство этого монстра.

И да, git -- linux-way. Когда они захотели сделать ОС, она долго была в статусе конструктора с торчащими наружу кишками, типа "собери сам" (да и сейчас порой весело). Когда они захотели сделать DVCS, получился ещё один конструктор (с сотней, что ли, разных бинарников, в какой-то из предыдущих версий), опять же, с кишками наружу (см. пример с пустым репозиторием). Но тут хоть они сами признаются, что гит у них -- просто средство для работы с версионным контентом, а не DVCS. Феерические хлопцы.

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

[identity profile] lastwalrus.livejournal.com 2009-08-10 01:26 pm (UTC)(link)
А ведь есть еще и http://bazaar-vcs.org/

[identity profile] nivanych.livejournal.com 2009-08-10 01:31 pm (UTC)(link)
За него ещё меньше, чем за git :-)

Page 2 of 3