Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn Diff分支,同时排除subversion的合并_Svn_Merge_Branch_Diff - Fatal编程技术网

Svn Diff分支,同时排除subversion的合并

Svn Diff分支,同时排除subversion的合并,svn,merge,branch,diff,Svn,Merge,Branch,Diff,我正在使用subversion,我想将分支的开始与所有文件的当前状态区分开来。此外,我想排除某些修改,例如,考虑以下内容: 注意:将下面每个文件中的每个字符视为一个代码块。(“A”是一个代码块,“B”是另一个代码块) ID 0:我从主干开始: 文件A(包含“A”) 文件(包含“B”) 文件C(包含“C”) 文件D(包含“D”) ID 1:我创建了一个分支: 文件A(包含“A”) 文件(包含“B”) 文件C(包含“C”) 文件D(包含“D”) ID 2:我修改文件A、文件B和文件D。我附加

我正在使用subversion,我想将分支的开始与所有文件的当前状态区分开来。此外,我想排除某些修改,例如,考虑以下内容:

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

ID 0:我从主干开始:

  • 文件A(包含“A”)
  • 文件(包含“B”)
  • 文件C(包含“C”)
  • 文件D(包含“D”)
ID 1:我创建了一个分支:

  • 文件A(包含“A”)
  • 文件(包含“B”)
  • 文件C(包含“C”)
  • 文件D(包含“D”)
ID 2:我修改文件A、文件B和文件D。我附加到文件A和文件B并更改文件D的内容

  • 文件A(包含“A1”)
  • 文件B(包含“B1”)
  • 文件C(包含“C”)
  • 文件D(包含“F”)
ID 3:我发现主干中的文件B、文件C和文件D发生了变化。主干现在是:

  • 文件A(包含“A”)
  • 文件(包含“B2”)
  • 文件C(包含“C2”)
  • 文件D(包含“E”)
ID 4:然后我从主干合并到分支:

  • 文件A(包含“A1”)
  • 文件(包含“B12”)
  • 文件C(包含“C2”)
  • 文件(包含“EF”)
ID 5:我在我的分支中修改B和C。修订号为24015:

  • 文件A(包含“A1”)
  • 文件(包含“B123”)
  • 文件C(包含“C3”)
  • 文件(包含“EF”)
现在,我希望在从合并中排除更改的情况下,在开始分支(ID 1)和完成分支(ID 5)之间有一个差异

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

  • 文件A(原来是“A”,现在是“A1”/diff显示“1”)
  • 文件B(它是“B”,现在是“B13”/diff显示“13”)
  • 文件C(原来是“C”,现在是“C3”/diff显示“3”)
  • 文件_D(原来是“D”,现在是“F”/diff显示D和F之间的所有差异)

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

两个明显的方法

  • 短途
    svn帮助差异
    ,第四种形式。只是分支和主干的不同头部:两侧相同的大块(
    A
    C2
    B
    )将被跳过(如果它们只执行合并而不进行编辑,您将有效地忽略合并集)

  • 哑方式,根据要求
    svn帮助差异
    ,带
    -c
    选项的第二表单。您将通过多次使用
    -c REV
    来区分分支(分支的开头或开头-记不起,懒得进行测试),以便在没有合并集的情况下枚举分支中的所有修订

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