我正在研究一个大型项目的模块。存储库的目录结构设计为每个模块都有单独的分支/标记/主干文件夹。
module 1
- branches
- tags
- trunk
module 2
- branches
- tags
- trunk
module 3
- branches
- tags
- trunk
在开发机器(Windows XP)上,我们必须将各种模块中的文件组合在一起,使用不同的文件夹结构(即使来自不同模块的文件也在同一目录中)。
现在我的问题是如何在版本控制下保留这种类型的开发项目文件夹?现在我正在做的是我单独检查我的模块,每当我更改开发文件夹中的任何内容时,我将文件复制到checkout文件夹,然后从那里提交。但是我可以直接从开发文件夹中提交,因为在当前的设置中,我可能会错过一些东西。
修改 注意:我无法更改存储库的目录结构。
答案 0 :(得分:2)
我有一个类似的项目在SVN外部运行得很好。创建一个没有自己文件的主项目,但有一个svn:externals声明,如:
^/module1/trunk module1
^/module2/trunk module2
^/module3/trunk module3
如果您签出主项目,将检查您想要的目录结构。
答案 1 :(得分:1)
这不是问题的答案,更多的是对评论来说太长的旁注
IMO是一个错误的项目结构。由于您已经在PC上合并了模块,因此您也应该在SVN中进行合并。它应该是这样的:
- branches
project
module1
module2
module3
- tags
project
module1
module2
module3
- trunk
project
module1
module2
module3
或者看看包含module2 / 3作为module1 svn的外部(例如Add external project to subversion repository)
答案 2 :(得分:0)
正如Krom所指出的,这可能不是在repo中构建代码的最佳方式,但是如果你不能改变它,我可以建议使用一个简单的批处理脚本来为你做结账。
这样,您只需运行脚本来处理从多个位置检出所需的所有文件,您仍然会保留svn信息。
然后,当您更改工作副本中的任何文件时,您只需要检查它们,无需担心它们在回购中的位置。
顺便说一句,该脚本甚至可以存储在svn中,供其他开发人员使用,也可以用于构建服务器等等。