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 02:19 pm (UTC)(link)
Только что поставил и сделал git svn clone. Работает. Что я делаю не так?

[identity profile] kiryl.livejournal.com 2009-08-10 02:22 pm (UTC)(link)
Ребе, а чем плохи git submodule или git merge -s subtree?

[identity profile] theiced.livejournal.com 2009-08-10 02:23 pm (UTC)(link)
вооот, ви таки чётко сформулировали мои претензии к гиту - пионерская недоделка с адовыми и непонятными доками.

[identity profile] kiryl.livejournal.com 2009-08-10 02:25 pm (UTC)(link)
А какова цель клонирования пустого репозитория?

[identity profile] lastwalrus.livejournal.com 2009-08-10 02:26 pm (UTC)(link)
Зато за ними Canonical Ltd. , а стало быть и оплачиваемые разработчики :)

[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 ?


[identity profile] theiced.livejournal.com 2009-08-10 02:32 pm (UTC)(link)
эмм - например сделали репу на серваке, себе склонили, потом пушим на сервак не заморачиваюсь настройками.

[identity profile] kiryl.livejournal.com 2009-08-10 02:33 pm (UTC)(link)
Git-1.6.4-preview20090730.exe

[identity profile] kiryl.livejournal.com 2009-08-10 02:40 pm (UTC)(link)
Притянуто за уши.

А вообще работает:

$ GIT_DIR=a.git git init --bare
Initialized empty Git repository in /home/kas/tmp/a.git/
$ git clone a.git
Initialized empty Git repository in /home/kas/tmp/a/.git/
warning: You appear to have cloned an empty repository.
$ ls -la a
total 16
drwxr-xr-x 3 kas kas 17 2009-08-10 17:38 .
drwx------ 44 kas kas 12288 2009-08-10 17:38 ..
drwxr-xr-x 7 kas kas 111 2009-08-10 17:38 .git


Что я делаю не так ?!?

[identity profile] nivanych.livejournal.com 2009-08-10 02:55 pm (UTC)(link)
А вот и странно, что ж его-то не используют,
ведь оно тоже GPL2, в чём же загвоздка?
Может, оно заметно медленнее работает?

Из распределённых я толком ничего не пользовал,
только лишь, чуток darcs пробовал.

[identity profile] jek-hor.livejournal.com 2009-08-10 02:55 pm (UTC)(link)
Тем, что я никогда про них не читал :)

Но в нём всё равно нельзя стянуть с сервера пару каталогов, поправить и залить назад. Идеология по определению не та :) И это к лучшему, ИМХО. Чуть сложнее в администрировании репозиториев, зато путаницы меньше со всякими логами-диффами.

[identity profile] nivanych.livejournal.com 2009-08-10 02:56 pm (UTC)(link)
Я оговорился насчёт "не используют".
Я имел ввиду, какие же видят в нём недостатки,
скажем, те же приверженцы mercurial или git?

[identity profile] kiryl.livejournal.com 2009-08-10 02:58 pm (UTC)(link)
Если есть ssh, то всё можно ;)

[identity profile] jek-hor.livejournal.com 2009-08-10 03:04 pm (UTC)(link)
Вот не знаю, как вышеозначенное, но Monotone, например, аццки медленное. Мне как-то порвало мозг, когда после очередного получасового стягивания изменений с апстрима (причём большую часть времени оно шебуршило локально), оно мне сказало примерно следующее: "У проекта две головы, какую будем использовать?" :)

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

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

gds@oldub:/tmp$ cd /tmp
gds@oldub:/tmp$ ( mkdir mainrep && cd mainrep && git init --bare )
Initialized empty Git repository in /tmp/mainrep/
gds@oldub:/tmp$ ( rm -rf workrep ; mkdir workrep && cd workrep && git clone ../mainrep && cd mainrep && touch kva && git add kva && git commit -m kva kva && git push )
Initialized empty Git repository in /tmp/workrep/mainrep/.git/
warning: remote HEAD refers to nonexistent ref, unable to checkout.

Created initial commit 52c9634: kva
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 kva
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to '/tmp/workrep/../mainrep'
gds@oldub:/tmp$ git --version
git version 1.6.0.4
gds@oldub:/tmp$


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

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

[identity profile] kiryl.livejournal.com 2009-08-10 05:50 pm (UTC)(link)
Почитайте man git-push. Нужно указать или refspec или --all. По-умолчанию git push отправляет в remote origin только общие бранчи. У локального репозитория и remote origin нет общих бранчей(origin вообще пуст), поэтому делать ничего не нужно, хотя git напичатал вам hint.

[identity profile] kiryl.livejournal.com 2009-08-10 06:02 pm (UTC)(link)
Провильней было бы сделать главный из рабочего путём push'а изменений.

[identity profile] lastwalrus.livejournal.com 2009-08-11 09:58 am (UTC)(link)
Проверил этот под семеркой... всё работает, так что пока беру свои слова обратно.

[identity profile] lastwalrus.livejournal.com 2009-08-12 12:34 pm (UTC)(link)
Почему его не используют, используют. Пока он тормознее git, в некоторых моментах догоняет hg (если что, то это информация с сайта bzr). Но они стараются взять следующим:
- Version Control for Human Beings. Bazaar has a natural feel because we focus on usability, particularly task efficiency. В нем можно работать как с centralized repository, так и с distributed. Набор комманд более привычен соскочившим с svn... хотя всё это есть у них расписано на сайте.



[identity profile] nivanych.livejournal.com 2009-08-12 12:51 pm (UTC)(link)
Хм.
Вроде, mercurial "гордится",
в точности, тем же...

Ну, спасибо за ещё один "голос" ;-)
Да просто скоро мне надо будет
довольно активно применять "эту хрень",
но изучать сейчас лениво, да и времени нет.
Вот и спрашиваю.

А так, из распределённых я имел дело
только с darcs, да и то, только чуть-чуть.

Page 3 of 3