从另一个更新一个svn repo

时间:2014-05-27 01:20:20

标签: svn

对于我们即将开始的项目,我想要一个我们将不断更新的私有subversion repo,以及一个仅在我们希望客户端看到更改时才更新的客户端可见的repo。也就是说,我们不希望客户看到我们所有(可能是愚蠢的)签到回购,因此我们将所有这些都留给自己,有时将所有内容都推送到客户可见的回购中。

是否有方便的方法使客户端仓库与私人仓库保持一致?我没有在颠覆中看到这样的命令,但可能会错过它们。编写rsync是客户端可见的私有脚本(不包括同步.svn目录),然后是几个svn adds和dels,这并不难,但这看起来很笨拙。

3 个答案:

答案 0 :(得分:1)

检查svnsync,它允许复制存储库。

答案 1 :(得分:1)

第1点

  

我们不希望客户看到我们所有(可能是愚蠢的)签到回购

矛盾并且不一致
  

有时会将所有内容推送到客户端可见的仓库

第2点

在SVN世界中,你必须使用SVN-lingo才能被正确理解,而不是将自己暴露为文盲的失败者:在SVN中我们没有"签到" (CVS-argo,"在SVN中提交")"推送" (DVCS-argo,作为CVCS的一部分,在CVCS / SVN中没有普遍接受和明确可识别的等同物)

解决方案草案

如果您希望转移到客户端可见的回购抛光历史记录,只需要"切片"发展

  • 任何CVCS都是不错的选择
  • 如果仍然是SVN(以及开发人员的两个存储库的可见性),您可以使用"通用UUID +重定位"
    • 必须使用相同的UUID创建Client-repo,如developers-repo(将1提交到DEV,创建CLIENT,将DEV-repo转储到转储文件,使用--force-uuid选项将转储恢复到CLIENT)< / LI>
    • 像往常一样使用DEV
    • 在DEV的同步时刻,svn relocate清理工作副本(更新为$ REVISION_OF_SYNC)
    • 将此已修改的CLIENT工作副本提交给CLIENT(先前和当前同步之间的所有DEV提交都将折叠为单个CLIENT提交)
    • 将WC重新安置回DEV
  • 你也可以使用标记来促进&#34;升级&#34; svnadmin dump树的修订和转储转储(svndumpfilter + svnrdump或仅/tags/)到任何客户树(svnadmin loadsvnrdump

答案 2 :(得分:1)

您可以使用分支

假设您按照以下方式设置Subversion存储库:

* corporate/trunk
* corporate/branches
* corporate/tags
* client/trunk
* client/branches
* client/tags

然后,您可以使用Path Based Authorization让您的公司分支对您的客户不可见。当您希望客户端看到某些内容时,您可以将公司分支合并到客户端分支