13

次のようなものを使用してマージを行いました。

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

2 つのファイルしかありませんでしたが、そのうちの 1 つは単純なChangeLog. 私の変更をマージするだけでなく、ChangeLog実際に私のものと、目的地になかったいくつかの以前の変更をプルしましたChangeLog。--dry-run を実行したときに競合があることに気づいたので、更新ChangeLogしましたが、まだ競合がありました (そして、実際のマージを行ったときに競合が見られました)。

その後、マージ元のファイルを比較しました。

svn diff -r 67212:67213 ChangeLog

そして、私が行った変更だけが表示されるので、余分な変更が何らかの形でそこに含まれていないことがわかります.

これは、マージが実際に私が変更したものだけを取得していないことを心配させます。これは私が期待していたものです. 誰が何が起こったのか説明できますか?

更新: 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.

以前の変更をマージした後、ChangeLog の差分は次のようになります。

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.

誤って取り込まれたエントリは、マージ先のファイルにはありませんでしたが、それは私の変更の 1 つではなく、とにかくマージされるべきではなかったことに注意してください。修正するのは簡単でした (私の変更の一部ではない余分な行を削除してください) SVN

4

2 に答える 2

2

これは競合が発生した場合にのみ発生します - 基本的に svn は変更をマージしようとしましたが、(大まかに言えば) 変更を次のように見ました:

追加

2008-08-06  Mike Stone  <myemail>

* changed_file: Details.

2008-08-06  Someone Else  <their_email>

そして、マージを行っている間、Someone Else の行を見つけることができなかったので、コンフリクトを設定する際にそのビットを文脈に入れました。競合のないマージである場合は、予期した変更のみが適用されます。

于 2008-08-17T17:17:46.193 に答える
0

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

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

リポジトリのフォルダー /trunk にあるリビジョン 67212 で変更されたすべてのファイルをマージし、それらを現在の作業ディレクトリにマージします。もしあなたがそうするなら:

svn log -r 67212

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

これで質問の答えが得られない場合は、正確に何が起こっているかについて詳細を投稿していただけますか?

于 2008-08-06T23:12:35.083 に答える