存储库和开发计算机上的不同项目的目录结构

时间:2011-11-21 06:06:32

标签: svn version-control tortoisesvn

我正在研究一个大型项目的模块。存储库的目录结构设计为每个模块都有单独的分支/标记/主干文件夹。

module 1
    - branches
    - tags
    - trunk

module 2
    - branches
    - tags
    - trunk

module 3
    - branches
    - tags
    - trunk

在开发机器(Windows XP)上,我们必须将各种模块中的文件组合在一起,使用不同的文件夹结构(即使来自不同模块的文件也在同一目录中)。

现在我的问题是如何在版本控制下保留这种类型的开发项目文件夹?现在我正在做的是我单独检查我的模块,每当我更改开发文件夹中的任何内容时,我将文件复制到checkout文件夹,然后从那里提交。但是我可以直接从开发文件夹中提交,因为在当前的设置中,我可能会错过一些东西。

修改 注意:我无法更改存储库的目录结构。

3 个答案:

答案 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中,供其他开发人员使用,也可以用于构建服务器等等。