我正在尝试创建一个SVN存储库的只读镜像,我只对两个顶级分支及其所有底层子目录感兴趣。即 /树干/* /支链/评论/ *
我想忽略/分支下的其他几个分支。
我已经有svnsync工作来镜像站点之间的整个存储库。我只是想知道我是否可以使用--drop-emtpy-revs svnrdump管道进入svndumpfilter来包含两个分支模式或排除其他分支模式。一旦我只转储了trunk / *和reviews / *,那么我将加载它,svnsync init它并启动同步。
我是在正确的轨道上还是有其他任何人可能建议的方法?
谢谢,布伦特
答案 0 :(得分:0)
如果你真的想要一个复制的存储库,而不是如上所述的稀疏结账,我有一些建议。
首先, - drop-empty-revs和svnsync不会很好; svnsync取决于完全相同的修订号,如果没有,你会得到这样的错误:
svnsync: E000022: Revision being currently copied (2018), last merged
revision (2017), and destination HEAD (1234) are inconsistent; have
you committed to the destination without using svnsync?
其次,将某些目录从存储库中拆分可能会遇到问题,通常是因为文件是从您选择的集合之外的分支复制的,如this question中所示。可以找到此问题的详细说明here。
简要提及另一种制作部分副本以避免先前问题的方法in the SVN FAQ。这个解决方案对我来说很有用。因此,您需要做的是使用authz限制对存储库的访问,类似这样(请注意,您必须拒绝访问您不希望复制的内容):
[/]
myuser = r
[/trunk]
myuser = r
[/branches/reviews]
myuser = r
[/tags]
myuser =
[/branches/other]
myuser =
然后设置并运行你的svnsync,你所允许阅读的目录之外的任何东西都不会出现,这意味着你将有很多空的修订版,但是,正如我之前所说,这是需要保持的svnsync happy。
希望这有帮助!