2010-12-17 176 views
3

我使用TortoiseSVN而无需外部Subversion服务器来管理LabView源代码(即不断变化的二进制文件的大量集合)。TortoiseSVN:将另一个分支的内容复制到另一个分支

我想要有一个任何人都可以订阅并获取每日更新的存储库的“测试版”分支。我想这与带有独立分支机构的常见测试版系列不同,但对于此项目来说这是正确的。

什么是复制树枝分支的特定修订版的内容到beta分支的最佳/最简单的方法?基本上我想要做的是删除beta的旧内容并插入新内容。我想,删除+添加是可行的,但显然不是最理想的。除非我可以让Tortoise自动解决中继线有利的所有冲突,包括删除文件,否则合并不是一种选择。

更新:有几个人问我为什么不想删除+添加。我想要一个更清洁的替代品。

  1. 此方法导致Beta树的一半更新正在“清除最后一次修订”。
  2. 更新不是原子的,所以有人可以拿起一个空版本。
  3. 我还没有尝试过,看过,但beta不会是一个正确的分支。修订日志甚至会跟踪多个修订,因为每次都是“新”文件?

更新2:svn允许前任意命令提交,但我不能让龟这样的工作方式。选择“删除”后,存根目录仍然保留,直到我提交,此时我可以重新填充分支。当它存在于新旧标签修订版本中时,需要有一种方法来取消删除目录以进行删除。

+0

我错过了什么或不是删除然后复制你想要的东西? – 2010-12-17 16:32:39

+2

不,SVN是事务性的 - 删除和复制(不添加!)不会有问题。而测试版可能是aproper分支(或更好的标签) – 2010-12-17 19:02:33

+0

@Unquiet:啊,我甚至没有想到!发布它作为答案,我会选择它。 – Potatoswatter 2010-12-17 23:13:34

回答

1

SVN是事务性的 - 删除和复制(不添加!)不会有问题。和β将是一个正确的分支(或更好的标签)

+0

好点!然而,事实证明,龟龟似乎并不支持这样的事务,因为直到您提交删除之前,剩余的占位符目录才存在。所以,在选择这个之前我会稍微等一下。 (另外,标签在SVN中作为分支实现,对吧?) – Potatoswatter 2010-12-18 03:51:53

0

为什么不删除beta/*然后将trunk/*复制到beta /?

2

合并是不是一种选择,除非我能得到 龟自动解决所有 在树干的青睐冲突, 包括删除文件。

我不知道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选项,通过解决所有冲突使用你想要的树干版本。

这有一些优点:颠覆将做representation sharing,因此存储在两个分支上的文件不会占用额外的存储空间。另外,当用户更新他们的beta工作副本时,只有被更改的文件需要通过网络进行传输。

相关问题