【发布时间】:2009-11-26 16:37:46
【问题描述】:
我们目前有一个 SVN 存储库,用于存储我们的源代码。我们在那里有大量项目(数百个)和多个通用库等。
这一切都很好,但它在结构上是非标准的。最初我们的目标是标准的“Trunk\”、“Tags\Tag_1.0.0\”样式模型,但我们遇到的问题是我们项目的相对路径停止工作。
EG:
- Common
|- Trunk
|- Tags
||- Tag_1.0.0
- OtherProject
|- Trunk
|- Tags
||- Tag_1.0.0
在这个结构中(我称之为相当标准,如果我错了,请纠正我)OtherProject 中对来自主干文件夹的 common 标记的引用将是“../../Common/Tags/Tag_1.0.0 " 解析为 /Common/Tag_1.0.0 (实际上会有更多......因为项目在后备箱中并不平坦,但这节省了一个巨大的图表)。一旦被标记,虽然相同的相对路径转到“/OtherProject/Common/Tags/Tag_1.0.0”。
我可以想到包含绝对路径的解决方法,但并非所有开发人员都对我们的文件使用相同的文件夹(甚至相同的硬盘驱动器号),在标记之前更改引用,但是当它标记树干时有一些可怕的东西不会编译并希望一旦它在标记文件夹中它就可以工作,或者将每个项目的引用以 DLL 形式放在项目本身中,但这在 Visual Studio 中并不容易(我们将主干引用到主干并不是闻所未闻并同时编辑这两个项目 - 当然稍后再添加标签),它会使我们的 SVN 存储库膨胀,以包含已发布的每个标签的所有构建。
这导致我们将标签放在与 Trunk 相同的层次结构级别。
EG:
- Common
|- Trunk
|- Tag_1.0.0
- OtherProject
|- Trunk
|- Tag_1.0.0
我们不可能是唯一遇到此问题的人,所以我很想知道是否有其他人与这头野兽战斗过,以及他们采取了哪些措施来解决它?是我们的方法有问题还是我们忽略了有助于解决此问题的工具?
【问题讨论】:
标签: .net visual-studio