2008-08-06 6 views
9

を合併:SVNのマージは、私はちょうどのようなものを使用して、マージをした余分なもの

svn merge -r 67212:67213 https://my.svn.repository/trunk . 

私だけの簡単なChangeLogそのうちの1つは2つのファイルを、持っていました。私のChangeLogの変更をマージするのではなく、実際にマイナスに加えて、宛先になかったいくつかの以前のものを引き戻しましたChangeLog。 --dry-runを実行したときに競合が発生していることに気づいたので、ChangeLogを更新しましたが、まだ競合がありました(実際のマージを行ったときに競合が発生しました)。

私はその後、私はからマージされたファイルに差分を取っ:

svn diff -r 67212:67213 ChangeLog 

そして私は私が作ったばかりの変更を参照してくださいので、私は余分な変更が何とかそこに取得していないことを知っています。

これは、実際に私が変更したものだけをマージするのではなく、私が予想していたことだと心配しています。誰が何が起こったのか説明できますか?

UPDATE:NilObjectに応じて:だから

、私は変更の2つのファイルを持っている、唯一のChangeLogは、他のマージされた罰金の関連です。私は、通常のトランクチェックアウトに行くとき、私は上記のdiffコマンドを実行すると、以下を参照してください

Index: ChangeLog 
=================================================================== 
--- ChangeLog (revision 67212) 
+++ ChangeLog (revision 67213) 
@@ -1,3 +1,7 @@ 
+2008-08-06 Mike Stone <myemail> 
+ 
+ * changed_file: Details. 
+ 
2008-08-06 Someone Else <their_email> 

    * theirChanges: Details. 

を以前の変更の私のマージした後、変更履歴のdiffは次のようになります。

Index: ChangeLog 
=================================================================== 
--- ChangeLog (revision 67215) 
+++ ChangeLog (working copy) 
@@ -1,3 +1,14 @@ 
+<<<<<<< .working 
+======= 
+2008-08-06 Mike Stone <myemail> 
+ 
+ * changed_file: Details. 
+ 
+2008-08-06 Someone Else <their_email> 
+ 
+ * theirChanges: Details. 
+ 
+>>>>>>> .merge-right.r67213 
2008-08-05 Someone Else2 <their2_email> 

    * olderChange: Details. 

。なお、間違って引き込まれたエントリは、私がそれをマージしているファイルではありませんでしたが、それは私の変更の一つではなく、とにかくマージされるべきではありません。修正するのは簡単でしたが(私の変更の一部ではない余分な行を削除します)、それでも私はSVNで自動的にマージすることを心配しています。

答えて

2

これが唯一の競合に起こる基本的にはSVNの変更をマージしようとしましたが、(大まかに言えば)としての変化を見た:

2008-08-06 Someone Else <their_email> 

2008-08-06 Mike Stone <myemail> 

* changed_file: Details. 

を追加し、それはマージをしている間に他の誰かの行を見つけることができなかったので、紛争を起こすときに文脈のためにちょっと詰め込んだ。衝突しないマージであった場合は、期待した変更だけが適用されていました。

+0

私は視覚的/手動のマージを行うときにSVNが "彼らの"側の "既存の"基礎文書を提供しなければならないので、あなたのマージ基準の最新のリビジョンはそれです。それは本当に厄介です! (少なくともマージゲームを初めてやっている人や、チェリーピッキングや他のマージの素晴らしさに驚嘆している人にとっては) – Tao

0

ここには十分な情報はありません。

svn merge -r 67212:67213 https://my.svn.repository/trunk . 

は、リポジトリ上のフォルダ/トランクに改正67212に変更されたファイルをマージし、現在の作業ディレクトリにマージします。あなたがする場合:

svn log -r 67212 

どのファイルが変更されましたか? Mergeは最初の引数からの変更だけを取り出し、2番目の引数に適用します。最初の引数でサーバーにアップロードされません。

これで問題が解決しない場合は、正確に何が起こっているのか詳細を投稿できますか? -

関連する問題