2010-02-10 114 views
6

我有一个主要项目我正在工作,其中有几个模块/目录。 主项目绑定到本地svn仓库。但是,无论何时我提交,我都想将一些模块/目录推送到Google代码存储库。但是我只想从本地存储库进行更新。有没有办法自动做到这一点?我的IDE emacs的23svn提交到多个存储库

感谢

回答

6

这是how the SVN book recommends你这样做。这似乎很痛苦,基本上围绕每个回购有一个工作副本,并从字面上复制两者之间的变化(你也可以用SVN补丁来做到这一点)。

或者,您可以将look into using SVK(这是SVN的分发层,向SVN添加Git-ish功能)将库mirroring or merging设置为外部回购。请注意,SVK的文档有点杂乱无章。显然,命令行帮助很好。

4

在SVN点每个工作拷贝到一个存储库。您可以使用svn switch将您的存储库更改为指向Google代码存储库,然后再更新并提交您希望存储在那里的目录。然后,您可以切换回您的标准存储库中的工作副本。当然,这依赖于两个存储库兼容的目录结构。

1

如果没有错,SVN交换机不是解决方案。

SVN交换机不仅将工作目录从一个存储库连接(或切换)到另一个不同的存储库!它还会从新存储库中进行无提示更新(或检出)。所以,如果我没有弄错,工作目录中的任何本地修改都会丢失,因为这个修改会被新的存储库覆盖。

似乎每个存储库都必须有一个工作副本,并且将原始工作目录之间的更改从字面上复制到其他工作目录。

1

似乎有一个更好的解决方案,使用svnsync

  1. 从源存储库初始化用于同步的镜像存储库。这是你在想成为的镜像版本库运行第一svnsync的操作:

    svnsync initialize MIRROR_URL SOURCE_URL 
    
  2. 转移从源存储库到镜像库中的所有待定修订:

    svnsync synchronize DEST_URL 
    
  3. 只有用于选择或特殊场合复制手册中说明的未决修订:

    svnsync copy-revprops DEST_URL [REV[:REV2]