我正在使用 TortoiseSVN 管理我的 C++ 项目,尝试将“分支重新整合”到主干。
我的情况相当简单,因此对于在分支中更改的每个文件,我希望它完全覆盖主干中匹配的文件。不幸的是,TortoiseSVN 比我聪明,因此它会合并每一对文件——导致一些不一致的代码。例如,在分支中已删除的某些代码行在合并后的版本中被恢复。
是否有办法强制 TortoiseSVN 使用简单的合并行为,并覆盖所有修改过的文件?
谢谢, 丹
我正在使用 TortoiseSVN 管理我的 C++ 项目,尝试将“分支重新整合”到主干。
我的情况相当简单,因此对于在分支中更改的每个文件,我希望它完全覆盖主干中匹配的文件。不幸的是,TortoiseSVN 比我聪明,因此它会合并每一对文件——导致一些不一致的代码。例如,在分支中已删除的某些代码行在合并后的版本中被恢复。
是否有办法强制 TortoiseSVN 使用简单的合并行为,并覆盖所有修改过的文件?
谢谢, 丹
以下是如何仅使用SVN(无需在文件系统中操作)完成此操作的步骤:
对webwesen的回答进行一些改进,因为我没有看到一个简单的方法:
svn update
命令为例。如果您的工作副本和存储库都有修改,但实际上没有冲突,svn update
将简单地将存储库的更改合并到您的工作副本中。--accept ACTION
命令行选项仅保留本地更改(例如)。但是,如果您想为存储库和工作副本中的任何更改指定接受操作,则很遗憾,您将无能为力。我提到的冲突解决问题建议采用一个非常丑陋的黑客方式,我不建议这样做。使用您喜欢的工具获取分支中更改的文件列表。现在,对于该列表中的每个文件,在主干上修改它,通过在每行前面添加一个不寻常的字符来实现。将更改提交到主干。在重新集成之前合并以使分支保持最新状态,但使用--accept
防止任何可怕的主干文件进入。然后,再次重新集成,使用--accept
覆盖可怕的主干文件。
我应该补充说,您不能使用TortoiseSVN进行此操作,至少不是显而易见的,因为它不支持--accept
,至少我没有找到。
好吧,我说过这很丑陋。不要在家里尝试这个!(我肯定没有。)