Подтвердить что ты не робот

Hg- git нажмите тихо

Я пытаюсь использовать hg push в репозитории git, но он не работает. Я нашел один пост в списке рассылки и зарегистрированный hg- git вопрос, но оба они около полугода без большой активности. Поэтому я начал думать, что неправильно понял/неправильно понял. Мой ~/.hgrc содержит

[extensions]
hgext.bookmarks =
hgext.git =
#hggit = /path/to/hg-git-0.3.1/hggit
[bookmarks]
track.current = True

Этот фрагмент воспроизводит проблему:

mkdir /tmp/Git
cd /tmp/Git
git init
echo 'something' > myfile
git add .
git commit -m 'Started'
cd ..
hg clone /tmp/Git /tmp/Hg
cd /tmp/Hg
echo 'another thing' >> myfile
hg ci -m 'Working'
hg log
# Two items listed
hg push
cd ../Git
git log
# Only one item listed, but two expected

Я попробовал как hg-git 0.2.6-2, поставляемый с Ubuntu 11.10, так и самую последнюю помеченную версию 0.3.1. My mercurial - версия 1.9.1

Я даже попробовал два предложенных обхода, hg update master до совершения и hg bookmark -f master после совершения, но оба дали ошибку.

UPDATE:

Я создал новую проблему для этого

4b9b3361

Ответ 1

Здесь есть две проблемы: push должен явно терпеть неудачу, и hg- git должен сообщить об этом (но это не так).

Нажатие должно завершиться неудачно, давая "abort: git remote error: refs/heads/master failed to update" when pushing to local clone, потому что оно нажимает на не-голый репозиторий (см. больше об этом с точки зрения ртутного пользователя). Рабочая версия приведенного выше фрагмента (обратите внимание на использование репозитория Bare).

mkdir /tmp/Git
cd /tmp/Git
git init
echo 'something' > myfile
git add .
git commit -m 'Started'
cd ..
git clone --bare -l /tmp/Git /tmp/Bare
hg clone /tmp/Bare/ /tmp/Hg
cd /tmp/Hg
echo 'another thing' >> myfile
hg ci -m 'Working'
hg log
# Two items listed
hg push
cd ../Bare
git log
# Two items listed

Относительно, почему hg-git скрывает эту ошибку, я подозреваю, что это проблема с самыми последними версиями, поставляемыми с Ubuntu. То, что я сделал, было

apt-get remove mercurial-git python-dulwich
easy_install hg-git

Удалено dulwich 0.7.1 и установлено 0.8, которое требуется в соответствии с сайтом hg-git. Теперь это работает для меня. Меркурийная версия (1.9.1) работает нормально.