我们有两个项目共享相同的公共文件。
例如
parentproj/subproj1/trunk/common/a.js
parentproj/subproj2/trunk/common/a.js
我们将修改 subproj1 中的 a.js,然后需要稍后将其复制到 subproj2,反之亦然。
我们不能用自己的主干将 common 分离到自己的 SVN 项目中,因为那样我们将无法签出 subproj 并获取它。在 CVS 中,我们可以很容易地解决这个问题,方法是将 common 放在两个项目之一中,然后在 CVS 服务器上的项目 2 中创建指向它的符号链接。
所以我们在上面的场景中有两个项目,每个项目都有自己的相同公共文件的副本。下一个问题是如何将更改从 1 合并到 2 或 2 到 1。Eclipse 无法做到这一点,因为它说“无法对与不同项目结构相关的资源执行操作”。Tortiose SVN 不能这样做,因为你不能同时打开两个单独的目录。如果您尝试使用 tortoise 将修改后的文件从一个项目“复制”到另一个项目,它会说它已经存在。
我们已将 subproj1 设置为名义上的 master,并对 subproj2 进行了 svn 复制。但这对我们没有帮助,我相信。
目前,我们使用 eclipse 手动剪切和粘贴每个更新的公共文件的更改,然后提交更改。
这意味着两个不同项目中的版本号不同,即使它是具有相同内容的同一个文件。
有任何想法吗?
目前我们没有或使用命令行 SVN,因为记住并正确地标记/复制文件的长 URL 路径似乎太冒险了,但如果唯一的方法,会考虑它。
我们的代码大部分是js文件,还有一些asp和html
如果我们使用 CVS,我们只需要一个项目(父项目),下面有一个“game1”和一个“game2”目录,以及一个公共目录。这是因为 CVS 允许您基于目录进行分支和标记,而 SVN 只能明智地分支/标记/合并整个主干。主干目录完全妨碍了日食,因为这意味着我们不能一次签出两个项目,我们必须分别签出每个项目,这样我们就不会在路径中获得主干目录。