Невозможно объединить в Mercurial - PullRequest
19 голосов
/ 09 января 2010

Я новичок в Mercurial. Недавно я создал репозиторий с двумя коллегами, и у меня возникают трудности с отправкой кода. Я использую командную строку hg в Windows. В частности, когда я нажимаю, я получаю диалог, подобный следующему:

>hg commit -u petermr

>hg push
pushing to http://bitbucket.org/petermr/polyinfo/
searching for changes
abort: push creates new remote heads!
(did you forget to merge? use push -f to force)
>hg merge
abort: there is nothing to merge

>hg status

Я боюсь использовать push -f, так как думаю, что это создаст несколько голов и вызовет проблемы для нашей группы.

Когда я пытаюсь объединиться, я получаю диалог, похожий на:

>hg merge -f
merging src/test/resources/PMR/algorithm/cmlAll.xml
 output file src/test/resources/PMR/algorithm/cmlAll.xml appears unchanged
was merge successful (yn)? y
merging src/test/resources/PMR/irregular/cmlAll.xml
 output file src/test/resources/PMR/irregular/cmlAll.xml appears unchanged
was merge successful (yn)? y
merging src/test/resources/PMR/massChange/cmlAll.xml
 output file src/test/resources/PMR/massChange/cmlAll.xml appears unchanged
was merge successful (yn)? y

Поскольку существует несколько сотен файлов, я не могу набрать "y" для каждого и не могу найти способ объединить их все вместе.

ОБНОВЛЕНИЕ Я попробовал первые (2) ответы и все еще имею проблему:

>hg pull
pulling from http://bitbucket.org/petermr/polyinfo/
searching for changes
no changes found

>hg merge
abort: outstanding uncommitted merges

ОБНОВЛЕНИЕ в ответ на @tonfa Я не могу зафиксировать:

>hg commit
abort: unresolved merge conflicts (see hg resolve)

ОБНОВЛЕНИЕ @balpha (я изменил имя владельца на Foo)

>hg parent
changeset:   24:9ec904d2d5a2
tag:         tip
user:        petermr
date:        Sat Jan 09 16:40:38 2010 +0000
summary:     trying to sync

changeset:   22:360aedb72f0e
parent:      21:89c4bd671bd3
parent:      18:3cffa8ca3a2a
user:        Foo (not me)
date:        Fri Jan 08 16:15:50 2010 +0000
summary:     merged


>hg tip
changeset:   24:9ec904d2d5a2
tag:         tip
user:        petermr
date:        Sat Jan 09 16:40:38 2010 +0000
summary:     trying to sync

UPDATE

рт.ст. головы

changeset:   24:9ec904d2d5a2
tag:         tip
user:        petermr
date:        Sat Jan 09 16:40:38 2010 +0000
summary:     trying to sync

changeset:   22:360aedb72f0e
parent:      21:89c4bd671bd3
parent:      18:3cffa8ca3a2a
user:        Foo (not me)
date:        Fri Jan 08 16:15:50 2010 +0000
summary:     merged

ОБНОВЛЕНИЕ после комментариев @balpha ниже, кто предлагает отменить запрос на ревизию (это число? Если да, то как мне его найти?)

>hg revert --all
abort: uncommitted merge - please provide a specific revision

ОБНОВЛЕНИЕ все еще не может объединиться ...

>hg revert --all -r tip
reverting .hgignore
reverting .hgignore~
reverting src\test\java\org\xmlcml\cml\converters\polyinfo\RegressionTest.java
reverting src\test\resources\PMR\algorithm\cmlAll.xml
reverting src\test\resources\PMR\irregular\cmlAll.xml
reverting src\test\resources\PMR\massChange\cmlAll.xml
reverting src\test\resources\PMR\massChangeOk\cmlAll.xml
reverting src\test\resources\PMR\ok\P340076.both.svg
reverting src\test\resources\PMR\ok\P340076.p.svg
reverting src\test\resources\PMR\ok\P340076.r.svg
reverting src\test\resources\PMR\ratio\cmlAll.xml

>hg status
M .hgignore
M .hgignore~
M src\test\resources\PMR\algorithm\cmlAll.xml
M src\test\resources\PMR\irregular\cmlAll.xml
M src\test\resources\PMR\massChange\cmlAll.xml
M src\test\resources\PMR\massChangeOk\cmlAll.xml
M src\test\resources\PMR\ok\P340076.both.svg
M src\test\resources\PMR\ok\P340076.p.svg
M src\test\resources\PMR\ok\P340076.r.svg
M src\test\resources\PMR\ratio\cmlAll.xml
? src\test\resources\PMR\bug\P020006work.both.svg
? src\test\resources\PMR\irregular\cmlAll.xml.resolve

>hg merge
abort: outstanding uncommitted merges

>hg commit
abort: unresolved merge conflicts (see hg resolve)

Обратите внимание, что

hg resolve -all

поднимает первоначальную проблему необходимости отвечать «y» на сотни отдельных вопросов, и я не знаю, решит ли это проблему. Ваша помощь очень ценится!

ОБНОВЛЕНИЕ @balpha предложила выполнить очистку - похоже, что прогресс достигнут

>hg update --clean -r tip
10 files updated, 0 files merged, 0 files removed, 0 files unresolved

>hg merge
merging src/test/resources/PMR/algorithm/cmlAll.xml
 output file src/test/resources/PMR/algorithm/cmlAll.xml appears unchanged
was merge successful (yn)? y
merging src/test/resources/PMR/irregular/cmlAll.xml
 output file src/test/resources/PMR/irregular/cmlAll.xml appears unchanged
was merge successful (yn)? y
merging src/test/resources/PMR/massChange/cmlAll.xml
 output file src/test/resources/PMR/massChange/cmlAll.xml appears unchanged
was merge successful (yn)? y
merging src/test/resources/PMR/massChangeOk/cmlAll.xml
 output file src/test/resources/PMR/massChangeOk/cmlAll.xml appears unchanged
was merge successful (yn)? y
merging src/test/resources/PMR/ok/P340076.both.svg
 output file src/test/resources/PMR/ok/P340076.both.svg appears unchanged
was merge successful (yn)? y
merging src/test/resources/PMR/ok/P340076.p.svg
 output file src/test/resources/PMR/ok/P340076.p.svg appears unchanged
was merge successful (yn)? y
merging src/test/resources/PMR/ok/P340076.r.svg
 output file src/test/resources/PMR/ok/P340076.r.svg appears unchanged
was merge successful (yn)? y
merging src/test/resources/PMR/ratio/cmlAll.xml
 output file src/test/resources/PMR/ratio/cmlAll.xml appears unchanged
was merge successful (yn)? y
2 files updated, 8 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)

>hg merge
abort: outstanding uncommitted merges

>hg merge -f
abort: outstanding uncommitted merges

>hg commit -u petermr -m "still trying to sy
nc"

>hg merge
abort: there is nothing to merge

>hg push
pushing to http://bitbucket.org/petermr/polyinfo/
searching for changes
http authorization required
realm: Bitbucket.org HTTP
user: petermr
password:
adding changesets
adding manifests
adding file changes
added 4 changesets with 298 changes to 290 files
bb/acl: petermr is allowed. accepted payload.
quota: 13.3 MB in use, 150.0 MB available (8.87% used)

Ответы [ 5 ]

16 голосов
/ 09 января 2010

Ваш локальный клон репо, вероятно, не обновлен. Сделать

hg pull

чтобы изменить это. Теперь у вас есть две головы локально (ваш собственный предыдущий совет и наконечник репозитория Bitbucket). Теперь

hg merge

, чтобы объединить две головы и

hg commit -m "Merged before pushing"

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

hg push

и все готово.

5 голосов
/ 09 января 2010

Прежде чем отправлять код в удаленное хранилище, сначала убедитесь, что локальное хранилище является чистым и не содержит незавершенных слив

Затем выполните hg pull из удаленного хранилища. Это создаст 2 головы в вашем локальном хранилище.

Выполнение локального слияния и фиксации (разрешение любых конфликтов).

Наконец, нажмите на удаленный репозиторий.

Как правило, не нажимайте на удаленный репозиторий, если там будет создано несколько головок.

4 голосов
/ 04 марта 2011

Возможно, вы не захотите совершать слияние даже локально. Способ очистки и запуска заново (из https://www.mercurial -scm.org / bts / issue1533 ), похоже, "hg update -C".

Как упоминалось выше, кажется, что "hg revert -a" должен работать, но, похоже, не работает.

0 голосов
/ 05 марта 2013

У меня была очень похожая проблема. Выяснилось, что основной причиной является расширение «исключить» Mercurial. Временно отключив расширение, проблема была исправлена. Ссылаясь на страницу расширения «исключить», владелец признал, что это известная проблема.

0 голосов
/ 24 сентября 2012

Используйте TortoiseHg вместо инструмента командной строки, он проще и графически отображает состояние хранилища, так что вы не будете путать со всеми командами.

...