我有一个 SVN 存储库,其结构与所需的相对构建路径不一致。
SVN 仓库目录看起来是这样的
- 根
- α
- 树干
- p1
- p2
- p3
- 标签
- 分支
- 树干
- 好极了
- 树干
- p4
- p5
- p6
- 标签
- 分支
- 树干
- α
我需要的构建目录结构是
- 根
- p1
- p2
- p3
- p4
- p5
- p6
我希望能够单独保留 SVN 结构,主要是因为我没有真正的能力来调整它。我还希望如果将另一个东西添加到主干中,比如 alpha 中的 p7,则构建目录会自动将其添加到其中。为了使构建工作正常,我需要能够从 p1 内部发出命令,例如 cd ../p2/ 并将其移动到 p2 文件夹中。
我认为某种形式的链接是我需要的途径,但我有点不知道如何解决这个问题。
提前致谢。
答案1
实现此目的的一种方法是(仅使用 SVN)在根目录下创建第三个项目,将其称为“build”。如果您愿意,它可以像往常一样拥有主干、标签和分支。在“build”项目中,您可以保留 makefile 或其他内容,但大多数情况下,“build”只会有一个 svn:externals 规则来提取所有必需的组件(以及适当的修订版本)。然后,您可以创建任何您喜欢的目录结构,同时保留正常的存储库位置。
这种方法的一个很大的缺点是,在提交更改之前构建更改变得更加困难。但是,如果需要拉入 HEAD 而不是特定修订版本,您仍然可以通过在“构建”工作副本之外处理更改并对 svn:externals 进行临时修改来实现这一点。