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] 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] 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.