20

私はmercurialの初心者です。最近、2 人の同僚とリポジトリをセットアップしましたが、コードのプッシュに問題があります。[Windows でコマンドライン hg を使用しています]。特に、プッシュすると、次のようなダイアログが表示されます。

>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」と入力することはできず、それらをすべてマージする方法が見つかりません。

UPDATE最初の(2)回答を試しましたが、まだ問題があります:

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

>hg merge
abort: outstanding uncommitted merges

@tonfaに応答してUPDATEコミットできません:

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

UPDATE @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

アップデート

hgヘッド

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 コメントに続いてUPDATEを提案する revert は改訂を要求します (これは数字ですか? もしそうなら、どうすれば見つけられますか?)

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

UPDATEはまだマージできません...

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

5 に答える 5

16

リポジトリのローカル クローンはおそらく最新ではありません。する

hg pull

それを変えるために。これで、ローカルに 2 つのヘッドができました (以前のヒントと bitbucket リポジトリのヒント)。今

hg merge

2 つのヘッドをマージし、

hg commit -m "Merged before pushing"

ローカル リポジトリにはヘッドが 1 つだけあり、このヘッドは bitbucket ヘッドの子であるため、プッシュしてもリモート ヘッドは作成されなくなります。

hg push

これで完了です。

于 2010-01-09T17:26:17.173 に答える
5

コードをリモート リポジトリにプッシュする前に、まずローカル リポジトリがクリーンで、未解決のマージがないことを確認します。

次に、リモート リポジトリから hg pull を実行します。これにより、ローカル リポジトリに 2 つのヘッドが作成されます。

ローカル マージを実行し、コミットします (競合を解決します)。

最後に、リモート リポジトリにプッシュします。

複数のヘッドがそこに作成される場合は、通常、リモート リポジトリにプッシュしないでください。

于 2010-01-09T17:27:35.190 に答える
4

ローカルでもマージをコミットしたくない場合があります。一掃して最初からやり直す方法(https://www.mercurial-scm.org/bts/issue1533より)は「hg update -C」のようです。

上でほのめかしたように、「hg revert -a」が機能するはずのように見えますが、機能していないようです。

于 2011-03-04T17:51:40.847 に答える
0

コマンド ライン ツールの代わりに TortoiseHg を使用します。これはよりシンプルで、リポジトリの状態をグラフィカルに表示するため、すべてのコマンドで混乱することはありません。

于 2012-09-24T17:56:08.540 に答える
0

私は非常によく似た問題を抱えていました。根本的な原因は、Mercurial の「除外」拡張機能であることが判明しました。拡張機能を一時的にオフにすることで、問題は解決しました。「除外」拡張ページを参照すると、所有者はそれが既知の問題であることを認めました。

于 2013-03-05T02:19:52.667 に答える