我有一个svn,有时我会选择几个非顺序版本号,然后将它们合并到另一个分支中。
我想输出一个“统一的”合并文件输出,该输出可以供多人查看,但是实际上并没有进行合并,我也不想“还原”它。
我需要一个'cmd'类型的命令,例如'svn merge rev1,rev2> mergeOutput.txt'
,然后mergeOutput.txt应该以统一的方式包含更改,例如右键单击tortoisesvn中的修订,然后->“以统一的方式显示更改”。
这里的关键是我合并的修订不是连续的,因此“ svn补丁”将不起作用,因为“ svn补丁”仅接受不固定的修订。
答案 0 :(得分:0)
我觉得这可行:
$ cd TARGET_WCPATH
$ pwd
TARGET_WCPATH
$ svn merge --dry-run SOURCE1@REV1 SOURCE2@REV2 | svn diff SOURCE1@REV1 TARGET@HEAD > mergeOutput.txt
来自svn help merge
:
-空运行:尝试操作但不做任何更改
指定了两个源URL,它们标识同一棵树上的两棵树 分支或在不同分支上。比较树木和 从SOURCE1 @ REV1到SOURCE2 @ REV2的差异适用于工作 目标分支在TARGET_WCPATH的副本。目标分支可能是 与一个或两个来源相同,或再次不同。他们三个 涉及的分支机构可以完全不相关。
TARGET_WCPATH是工作副本路径;如果省略,则为“。”通常
SOURCE1和/或SOURCE2也可以指定为工作副本路径, 在这种情况下,合并源URL源自工作副本。
对于svn diff
,您可以使用以下任何一种格式:
根据上述格式,svn diff中的SOURCE1和TARGET可以是URL或路径。