2012-02-25 4 views
-1

ここに私がしたことがあります。私は2つの頭が欲しくない。これをどうやって解決するのですか?バック一つに二つのヘッドをマージするよう求められますMercurial heads

~/src: hg push 
pushing to ssh://[email protected]/Neil/project 
ruprojecting ssh [email protected] 'hg -R Neil/project serve --stdio' 
searching for changes 
new remote heads on branch 'default' 
new remote head e04226a528b5 
abort: push creates new remote head e04226a528b5! 
(did you forget to merge? use push -f to force) 

~/src: hg push -f 
pushing to ssh://[email protected]/Neil/project 
ruprojecting ssh [email protected] 'hg -R Neil/project serve --stdio' 
searching for changes 
14 changesets found 
remote: adding changesets 
remote: adding manifests 
remote: adding file changes 
remote: added 14 changesets with 30 changes to 67 files (+1 heads) 
remote: bb/acl: Neil is allowed. accepted payload. 

~/src: hg pull 
ruprojecting ssh [email protected] 'hg -R Neil/project serve --stdio' 
pulling from ssh://[email protected]/Neil/project 
searching for changes 
no changes found 

~/src: hg heads 
changeset: 1177:e04226a528b5 
tag:   tip 
parent:  1175:b5f77a454e64 
user:  Neil 
date:  Sat Feb 25 09:12:48 2012 -0800 
files:  src/experiments/distribution_combination.py 


changeset: 1176:f7cc8d94f4f3 
parent:  1162:b680e6f93f80 
user:  Neil 
date:  Thu Feb 23 15:32:36 2012 -0800 
files:  .hgignore src/CMakeLists.txt etc. 
+0

-1:コメントは出力されていません。 –

答えて

3
hg merge 

。むしろ、自動的にすべてをマージし、競合についてのメッセージを表示します。その後、結果を差分して新しいチェンジリストとして送信することができます。

3

これは、通常、最後に引っ張ってから他の誰かがプッシュしたことを示しています。プッシュを強制するために-fフラグを指定することはできますが、これは新しいヘッズになります。

解決策は、マージしたいヘッドに更新し、hg mergeを実行してからcommit/pushを実行することです。

+0

ありがとうございますが、私は書き込みアクセス権があります。これがどうして起こったのだろう? –

+0

複数のマシンから開発していますか?私は家からいくつかの仕事をプッシュした状況を抱えていましたが、私が仕事に行くと、自分のプッシュを以前に忘れていた別のバグを修正しました。 – computrius

+0

Hmmm ...私はそれを念頭に置いておくつもりですが、私は1台の開発マシンしか持っていません。 –

4

追加の頭をしたくない場合 - それを

ダムプッシュ-fの代わりにをしない:HG をマージ

  • はHGの着信& & HG
  • を引きます
  • hgコミット
  • hgプッシュ