SVN合并合并的额外内容

Translate

我只是使用以下方式进行了合并:

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

我只有2个文件,其中一个很简单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.

请注意,被误拉入的条目不在我要合并的文件中,但是这不是我的更改之一,无论如何都不应合并。修复起来很容易(删除了我所做更改中没有的多余行),但仍然让我担心自动合并到SVN.

This question and all comments follow the "Attribution Required."

所有的回答

Translate

这仅在发生冲突时发生-基本上svn尝试将更改合并到其中,但(大致而言)将更改视为:

2008-08-06  Mike Stone  <myemail>

* changed_file: Details.

之前

2008-08-06  Someone Else  <their_email>

并且在合并时无法找到Someone Else行,因此在放入冲突时将其作为上下文使用。如果这是不冲突的合并,则只会应用您期望的更改。

来源
Translate

此处没有足够的信息。

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

将合并版本号为67212的任何更改的文件到存储库中的文件夹/ trunk中,并将它们合并到当前工作目录中。如果您这样做:

svn log -r 67212

它显示哪些文件已更改?合并只会从第一个参数中提取更改,然后将其应用于第二个参数。它不会在第一个参数中上传回服务器。

如果这样不能回答您的问题,您能否发布更多有关发生了什么的详细信息?

来源