【问题标题】:Diff branches while excluding merge for subversion差异分支同时排除合并以进行颠覆
【发布时间】:2015-03-07 02:55:24
【问题描述】:

我正在使用颠覆,我想将我的分支的开始与我所有文件的当前状态进行比较。此外,我想从差异中排除某些修订。例如,考虑以下情况:

注意:将以下每个文件中的每个字符视为代码块。 (“A”是一个代码块,“B”是一个不同的代码块)

ID 0:我从 Trunk 开始:

  • File_A(包含“A”)
  • File_B(包含“B”)
  • File_C(包含“C”)
  • File_D(包含“D”)

ID 1:我创建了一个分支:

  • File_A(包含“A”)
  • File_B(包含“B”)
  • File_C(包含“C”)
  • File_D(包含“D”)

ID 2:我修改 File_A、File_B 和 File_D。我追加到 File_A 和 File_B 并更改 File_D 的内容。

  • File_A(包含“A1”)
  • File_B(包含“B1”)
  • File_C(包含“C”)
  • File_D(包含“F”)

ID 3:我发现后备箱中的 File_B、File_C 和 File_D 发生了变化。树干现在是:

  • File_A(包含“A”)
  • File_B(包含“B2”)
  • File_C(包含“C2”)
  • File_D(包含“E”)

ID 4:然后我从主干合并到我的分支:

  • File_A(包含“A1”)
  • File_B(包含“B12”)
  • File_C(包含“C2”)
  • File_D(包含“EF”)

ID 5:我在我的分支中修改了 B 和 C。修订为 24015:

  • File_A(包含“A1”)
  • File_B(包含“B123”)
  • File_C(包含“C3”)
  • File_D(包含“EF”)

现在我想要在我开始分支 (ID 1) 和完成分支 (ID 5) 之间的差异,同时排除合并中的更改。

ID 6:我希望差异显示以下内容:

  • File_A(以前是“A”,现在是“A1”/差异显示“1”)
  • File_B(以前是“B”,现在是“B13”/差异显示“13”)
  • File_C(以前是“C”,现在是“C3”/差异显示“3”)
  • File_D(以前是“D”,现在是“F”/差异显示 D 和 F 之间的所有差异)

我想创建一个包含上述四个文件更改的补丁文件。所以当申请 ID 1 时,我得到 ID 6。有人有什么想法吗?

【问题讨论】:

    标签: svn merge branch diff


    【解决方案1】:

    两种显而易见的方式

    • 快捷方式svn help diff,第 4 种形式。只是分支和主干的差异头:两侧相同的大块(AC2B)将被跳过(如果它们只执行合并而不进行编辑,您将有效地忽略合并集)

    • 愚蠢的方式,根据要求svn help diff,带有-c 选项的第二形式。您将使用多次使用-c REV 来区分分支(分支或 HEAD 的开始 - 记不起并且懒得测试),以便在没有合并集的情况下枚举分支中的所有修订

    文本差异可能略有不同,因为 SVN 的统一差异在上下文中工作(默认情况下围绕大块 3 行)并且对于“细”更改它将(可能)可见

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-16
      • 2011-07-05
      相关资源
      最近更新 更多