如何按文件名合并不同的树

时间:2019-08-26 13:06:40

标签: svn merge tortoisesvn

让我们说我在SVN中遇到了这种情况:

/projectOne/subprojectOne/**foldername1.one/file1.cs**
/projectOne/subprojectOne/**foldername2.one/file2.cs**
/projectOne/subprojectOne/**foldername3.one/file3.cs**

/projectOne/subprojectTwo/**foldername1.two/file1.cs**
/projectOne/subprojectTwo/**foldername2.two/file2.cs**
/projectOne/subprojectTwo/**foldername3.two/file3.cs**

我的项目“ projectOne”内部有两个微型项目,它们的结构相同(“ foldername1 ...”,“ foldername2 ...”,“ foldername3 ...”),但文件的使用有所不同(“ file1.cs”,“ file2.cs”,“ file3.cs”)。

我已经在 subprojectOne 中工作,现在我想(合并)将对 subprojectTwo 所做的所有修改都应用到其中,前提是它们具有相同的文件夹结构。

已经尝试使用“合并差异树”进行合并,但是结局并不理想。

我如何使用tortoiseSVN或SVN命令行本身做到这一点?

1 个答案:

答案 0 :(得分:0)

假设我们正在谈论单个存储库,则可以执行以下操作:

  1. 转到最好是干净的(无本地更改)工作副本,该副本指向目标分支/projectOne/subprojectTwo
  2. 右键单击文件夹projectOne,然后选择“ TortoiseSVN /合并”。
  3. 选择“合并一系列修订”。
  4. 在“要合并的URL”处,将完整URL设置为源分支,例如https://example.com/svn/projectOne/subprojectOne/
  5. 在“合并的修订范围”中,您可以将所有修订合并为一个,也可以选择一个范围。无论哪种情况,单击“选择日志”并查看剩余要合并的内容都没有问题。
  6. 单击“下一步”,然后查看合并选项。默认值应该没问题。
  7. (可选)单击“测试合并”以找出是否会发生冲突。
  8. 单击“合并”并交叉手指。

    如果发生合并冲突,TortoiseSVN将收集信息并针对每个个案提出建议。这可能很难。

  9. 查看本地更改,必要时进行其他调整并提交。

如果出现问题或不确定自己在做什么,则只需还原工作副本更改即可。