我正在使用subversion,我想将我的分支的开头区分到我所有文件的当前状态。另外,我想从diff中排除某些修订。例如,请考虑以下事项:
注意:将下面每个文件中的每个字符视为一段代码。 (" A"是代码块," B"是不同的代码块)
ID 0:我从Trunk开始:
ID 1:我创建了一个分支:
ID 2:我修改了File_A,File_B和File_D。我附加到File_A和File_B并更改File_D的内容。
ID 3:我发现主干中的File_B,File_C和File_D已经发生了变化。行李箱现在是:
ID 4:然后我从主干合并到我的分支:
ID 5:我修改了我的分支中的B和C.修订版是24015:
现在我想在我开始分支(ID 1)和完成分支(ID 5)之间进行差异,同时排除合并中的更改。
ID 6:我希望差异显示以下内容:
我想创建一个补丁文件,其中包含上述四个文件的更改。因此,当应用于ID 1时,我会得到ID 6.有没有人有任何想法?
答案 0 :(得分:0)
两种明显的方式
简短:svn help diff
,第4种形式。只是对分支和主干的头部进行区分:两边的相同深度(A
,C2
,B
)将被跳过(如果他们仅在没有编辑的情况下执行合并,您将有效地忽略合并集)
愚蠢的方式,按要求:svn help diff
,带有-c
选项的第二种形式。你可以多次使用-c REV
来扩展分支(分支或HEAD的开始 - 无法回想起来,也懒得测试),以便在没有 mergeset的情况下枚举分支中的所有修订版(多个)
文本差异可能略有不同,因为SVN的统一差异工作在上下文中(默认情况下围绕hunk 3行)和“瘦”更改它将(可能)可见