如何在SVN的中继之间共享资源?

时间:2013-04-11 11:05:40

标签: svn

我们有两个共享相同公共文件的项目。

E.g。

parentproj / subproj1 /中继/普通/ a.js

parentproj / subproj2 /中继/普通/ a.js

我们将修改subproj1中的a.js然后需要将其复制到subproj2,反之亦然。

我们不能将自己的SVN项目与自己的主干分开,因为那时我们将无法检查子项目并获得它。在CVS中,我们可以通过将common放在两个项目之一中,然后在CVS服务器上的项目2中创建一个符号链接来轻松解决这个问题。

所以我们有上面的场景,有两个项目,每个项目都有自己的相同公共文件的副本。下一个问题是如何将更改从1更新为2或2到1. Eclipse无法执行此操作,因为它表示“无法使用与不同项目结构相关的资源执行操作”。 Tortiose SVN无法做到这一点因为您无法同时打开两个单独的目录。如果您尝试使用乌龟将修改后的文件从一个项目“复制”到另一个项目,则说它已经存在。

我们已将subproj1设置为名义主服务器,并为subproj2执行了svn副本。但是我相信这对我们没有帮助。

目前,我们使用eclipse手动剪切并粘贴每个更新的公共文件的更改,然后提交更改。

这意味着两个不同的项目中的版本号不同,即使它是相同内容的相同文件。

有什么想法吗?

目前我们没有或使用命令行SVN,因为记住并获得正确的标记/复制文件的长URL路径似乎风险太大,但如果唯一的方法就会考虑它。

我们的代码主要是js文件,有一些asp和html

如果我们使用CVS,我们只需要有一个项目(父项),下面有一个“game1”和一个“game2”目录,还有一个常见的目录。这是因为CVS允许您根据目录进行分支和标记,因为SVN只能合理地分支/标记/合并整个主干。干线目录完全阻碍了日食,因为这意味着我们不能一次性检查两个项目,我们必须单独检查每个项目,这样我们就不会在路径中得到干线。

2 个答案:

答案 0 :(得分:1)

使用TortoiseSVN,您无需打开两个目录。只需在其中一个上选择合并,然后选择另一个目录的URL作为合并源。

至于分离它 - 你可以将常见的东西分成第三位并将其分支到每个子项目中。

答案 1 :(得分:1)

  

我们不能将自己的SVN项目与自己的主干分开,因为那时我们将无法检查子项目并获得它。

但是必须:阅读并使用svn:externals。如果你分享整个公共目录,外部可以住在单独的回购中。如果您只共享公共文件,则SVN必须为1.6+,外部目标必须位于同一个repo中,作为源