【问题标题】:SVN merge merged extra stuffSVN合并合并额外的东西
【发布时间】:2010-09-05 11:12:55
【问题描述】:

我刚刚使用以下方法进行了合并:

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 的 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 中自动合并。

【问题讨论】:

    标签: svn merge


    【解决方案1】:

    这只发生在冲突中 - 基本上 svn 试图合并更改,但(粗略地说)将更改视为:

    添加

    2008-08-06  Mike Stone  <myemail>
    
    * changed_file: Details.
    

    之前

    2008-08-06  Someone Else  <their_email>
    

    在进行合并时它找不到“其他人”行,因此在放入冲突时将其放入上下文中。如果是非冲突合并,则只会应用您预期的更改。

    【讨论】:

    • 我理解为什么会这样(在进行可视化/手动合并时,SVN 必须为“他们的”方提供“现有”基础文档,因此您的合并标准中的最新版本是吗),但它真的很讨厌! (至少对于刚接触合并游戏并惊叹于樱桃采摘和其他合并优点的人来说)
    【解决方案2】:

    这里没有足够的信息。

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

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

    svn log -r 67212
    

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

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

    【讨论】:

      猜你喜欢
      • 2011-12-04
      • 2014-10-23
      • 2021-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 2010-09-18
      相关资源
      最近更新 更多