我们在团队环境中使用TortoiseSVN。在处理更大的功能时,我创建了一个功能分支,在那里工作一周,每隔一天合并从主干到我的分支的更改,当功能完成后,我将它合并回主干。
合并时,我总是这样做:
这对我来说似乎效率低下 - 我创建了一堆文件,在切换到trunk时删除它们,然后在合并到trunk时再次创建它们。
有没有其他方法可以使用TortoiseSVN将分支合并到主干,这样可以提高效率,而不需要两个单独的工作副本? (在我们的场景中实际上效率不高,因为一些依赖项使用绝对路径,当我想从另一个工作副本编译时我需要手动更改它们)
答案 0 :(得分:13)
如果没有干线的工作副本(即合并目标),则无法在SVN中合并和提交。这不是可以直接在存储库上执行的操作,因为它正在修改文件,并且您需要在提交之前验证它们是否已正确合并。
所以我猜你基本上想要一个切换和合并动作(或者 switch-and-merge-reintegrate )。据我所知,这个命令不是由SVN或TortoiseSVN提供的,所以你不会按照你描述的方式去做。
答案 1 :(得分:0)
我始终保留两者的工作副本。
如果你检查了主干和分支下面的根,那么你们都可以使用,所以不需要来回切换。只需像正常的文件结构一样在树上上下移动。
答案 2 :(得分:0)
我知道我迟到了,但有一个想法是使用subst
命令使虚拟驱动器指向活动的工作副本:
cd \myproject\trunk
subst z: .
... use the trunk ...
cd \myproject\branchxy
subst /d z:
subst z: .
... use the branch xy ...
这样,您只需在传入的外部依赖项中使用subst
- 创建的驱动器号。
答案 3 :(得分:-2)
以下是SVN书籍的摘录:
您需要/ trunk的工作副本。您可以通过执行svn checkout,从磁盘上某处挖掘旧的主干工作副本或使用svn开关来获取一个(请参阅“遍历分支”一节)。