我正在使用没有外部Subversion服务器的TortoiseSVN来管理LabView源(即大量不断变化的二进制文件)。
我想拥有一个存储库的“beta”分支,任何人都可以订阅并获取每日更新。我想这与通常的测试版系列有不同的分支,但它适合这个项目。
将特定版本的trunk分支的内容复制到beta分支的最佳/最简单方法是什么?基本上我想要做的是删除beta
的旧内容并插入新内容。我想,删除+添加会起作用,但它显然不是最理想的。合并不是一种选择,除非我能让Tortoise自动解决主干有利的所有冲突,包括删除文件。
更新:有几个人问我为什么不想删除+添加。我想要一个更清洁的选择。
beta
不是一个合适的分支。修订日志是否会跟踪多个修订,因为它每次都是一个“新”文件? 更新2: svn
在提交之前允许任意命令,但我无法让Tortoise以这种方式工作。选择“删除”后,存根目录仍然保留,直到我提交,此时我可以重新填充分支。当旧目录和新标签修订版中都存在删除目录时,需要有一种方法可以取消标记。
答案 0 :(得分:2)
除非可以,否则合并不是一种选择 让Tortoise自动解决 所有冲突都有利于, 包括删除文件。
我不知道TortoiseSVN,但如果您安装了command line client,则可以执行以下操作将最新的trunk
更改合并到beta
分支:
cd c:/path/to/my/working/copy/of/beta/branch
svn merge file:///c:/path/to/my/repository/trunk --accept theirs-full
svn commit -m "merged latest trunk changes to beta branch"
--accept theirs-full
选项可以使用主干的版本来解决所有冲突。
这有一些优点:subversion将执行representation sharing,因此存储在两个分支上的文件不会占用存储库中的额外空间。此外,当用户更新其beta
工作副本时,只需更改已更改的文件。
答案 1 :(得分:1)
SVN是事务性的 - 删除和复制(不添加!)不会有问题。 beta将是一个合适的分支(或更好的标签)
答案 2 :(得分:0)
为什么不删除beta / *然后将trunk / *复制到beta /?