我有一个我正在研究的主项目,它有几个模块/目录。 主项目绑定到本地svn存储库。但是,每当我提交时,我都想将一些模块/目录推送到Google代码库。但是我只想从本地存储库更新。有没有办法自动完成?我的IDE是emacs 23。
由于
答案 0 :(得分:6)
这是how the SVN book recommends你做的。这看起来非常痛苦,基本上围绕着为每个仓库设计一个工作副本,并在字面上复制两者之间的变化(你可能也可以使用SVN补丁)。
或者,您可以look into using SVK(SVN的分发层,向SVN添加Git-ish功能)将资源库mirroring or merging设置为外部存储库。请注意,SVK的文档有点混乱。显然命令行帮助很好。
答案 1 :(得分:4)
SVN中的每个工作副本都指向一个存储库。您可以做的是使用svn switch
将您的存储库更改为指向Google Code存储库,然后更新并提交您希望存储在其中的目录。然后,您可以切换回标准存储库中的工作副本。当然,这确实依赖于两个存储库之间兼容的目录结构。
答案 2 :(得分:1)
如果没有弄错,SVN切换不是解决方案。
SVN交换机不仅将工作目录从一个存储库连接(或切换)到另一个不同的存储库!它还从新存储库执行静默更新(或检出)。所以,如果我没有弄错的话,工作目录中的任何本地修改都会丢失,因为新的存储库会覆盖它。
似乎必须为每个存储库创建一个工作副本,并在字面上复制原始工作目录与其他工作目录之间的更改。
答案 3 :(得分:1)
使用svnsync
似乎有更好的解决方案。
从源存储库初始化镜像存储库以进行同步。这是您在可能的镜像存储库上运行的第一个 svnsync 操作:
svnsync initialize MIRROR_URL SOURCE_URL
将所有待处理的修订从源存储库传输到镜像存储库:
svnsync synchronize DEST_URL
仅适用于复制待定版本的选定或特殊场合,如手册中所述:
svnsync copy-revprops DEST_URL [REV[:REV2]