2010-01-09 7 views
18

nicht zusammenführen Ich bin ein Newcomer zu mercurial. Ich habe kürzlich ein Repository mit 2 Kollegen eingerichtet und habe Schwierigkeiten, meinen Code zu pushen. [Ich verwende die Befehlszeile hg in Windows]. Insbesondere dann, wenn ich schiebe bekomme ich einen Dialog wie folgt aus:Konnte mercurial

>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 

Ich fürchte -f mit Push-to commit wie ich denke, dass mehrere Köpfe schaffen und Probleme für unsere Gruppe führen.

Wenn ich versuche, zu fusionieren ich einen Dialog so etwas wie bekommen:

>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 

Da gibt es mehrere hundert Dateien, die ich nicht „y“ für jeden Typ kann, und ich kann nicht einen Weg der Verschmelzung sie alle zusammen finden .

UPDATE ich die ersten versucht haben, (2) Antworten und haben immer noch ein Problem:

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

>hg merge 
abort: outstanding uncommitted merges 

UPDATE in Antwort, die ich begehen kann @tonfa nicht:

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

UPDATE @balpha (Ich habe den Namen des Besitzers zu Foo geändert)

>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

hg Köpfe

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 

UPDATE folgende @balpha Kommentare unten, die schlägt vor, zurückkehren, die für eine Revison fragt (das ist eine Zahl? Wenn ja, wie kann ich sie finden?)

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

UPDATE kann immer noch nicht fusionieren ...

>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) 

Beachten Sie, dass

hg resolve -all 

das ursprüngliche Problem, bringt bis zu beantworten "y" zu Hunderten von individuellen Fragen und ich weiß nicht, ob es das Problem lösen wird. Deine Hilfe ist sehr Willkommen!

UPDATE @balpha Reinigung vorgeschlagen - dieser Fortschritt

>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) 
+0

Commit nur das Ergebnis der Zusammenführung. – tonfa

+0

posten Sie bitte die Ausgabe von 'hg parent' und' hg tip' – balpha

+0

... und 'hg heads' – balpha

Antwort

15

Ihr lokaler Klon des Repo gemacht zu haben scheint, ist wahrscheinlich nicht up-to-date. Tun Sie eine

hg pull 

, um das zu ändern. Jetzt haben Sie zwei Köpfe lokal (Ihr eigener Tipp und die Spitze des bitbucket Repos).Jetzt

hg merge 

die beiden Köpfe zu verschmelzen und

hg commit -m "Merged before pushing" 

jetzt Ihren lokalen Repo hat nur einen Kopf, und dieser Kopf ist ein Kind des bitbucket Kopf, so Wille drückt nicht eine Remote erstellen Kopf mehr:

hg push 

und du bist fertig.

+0

Dies scheint nicht mir eine Zusammenführung zu ermöglichen - siehe UPDATE –

+1

+1 für weiter interaktiv helfen –

+1

Akzeptierte Antwort, aber siehe Diskussion auf der Frage für Details –

5

Bevor Sie Code an ein Remote-Repository senden, stellen Sie zunächst sicher, dass Ihr lokaler Repo sauber ist und keine ausstehenden Zusammenführungen vorliegen.

Dann, tun Sie eine hg ziehen aus dem Remote-Repository. Dadurch werden 2 Köpfe in Ihrem lokalen Repository erstellt.

Führen Sie eine lokale Zusammenführung durch, und führen Sie eine Commit-Operation durch (Lösen von Konflikten).

Drücken Sie schließlich auf das Remote-Repository.

Verschieben Sie im Allgemeinen nicht zu einem Remote-Repository, wenn dort mehrere Köpfe erstellt werden.

+0

+1, weil die " Repo muss sauber sein "Teil war die entscheidende Sache in diesem Fall – balpha

+0

@Tarydon:" Stellen Sie zuerst sicher, dass Ihr lokaler Repo sauber ist und keine ausstehenden Zusammenführungen hat. " Kannst du mir erklären, wie das geht? – MikeSchinkel

4

Möglicherweise möchten Sie die Zusammenführung auch nicht lokal festschreiben. Der Weg zu reinigen und neu zu beginnen (von https://www.mercurial-scm.org/bts/issue1533) scheint "hg update -C" zu sein.

Wie oben erwähnt, scheint es, als ob "hg revert -a" funktionieren müsste, scheint aber nicht.

+1

Ich hatte genau das Problem oben auf der ursprünglichen Frage beschrieben, und festgestellt, dass das Kopieren aller meiner geänderten Dateien aus, "hg update -C", und dann kopieren Änderungen für mich gearbeitet. – dukedave

0

Verwenden Sie TortoiseHg anstelle des Befehlszeilentools, es ist einfacher und grafisch zeigt den Zustand des Repository, so dass Sie nicht mit allen Befehlen verwechselt werden.

0

Ich hatte ein sehr ähnliches Problem. Die Ursache ist die "exclude" Erweiterung des Mercurial. Durch vorübergehendes Deaktivieren der Erweiterung wurde das Problem behoben. Mit Bezug auf die Erweiterungsseite "exclude" gab der Besitzer zu, dass es sich um ein bekanntes Problem handelt.