我有一个 SVN 存储库,其中包含模块(源文件和头文件),其结构如下:
现在我想将这些模块作为外部链接到另一个存储库中的项目中:
最好的情况是像上面所示的文件链接。但我无法找到一种使用外部方法来做到这一点的方法。有可能吗?已经提出了多个与此相关的问题,但就我的搜索能力而言,它们都已经很旧了,所以我想我可能会再次提出这个问题。 我们在1.8版本中使用SVN
这样做的原因如下: 一个存储库包含在此存储库中开发和发布的通用库/模块。每个软件项目都在自己的存储库中完成,但使用这些模块/库。这就是为什么我认为链接到特定标签并将其用作外部标签是最干净的选择。 我知道它远非完美,但出于公司政策的原因,我必须坚持使用 SVN,以及多个存储库的结构。
只需致电
svn propset svn:externals <parameters>
和 svn propget svn:externals
即可将其读回。更改属性后不要忘记更新您的存储库。
您可以将所有外部写入一个文件(每个目录),然后使用 -F 选项调用 propset。详情请参阅
svn help propset
。
如果您使用 tortoise-svn,您可以从 Windows 资源管理器中使用拖放操作(按 Shift 和鼠标右键进行此操作)。
个人经验的第一个警告:不要级联外部。例如。项目 a 引用了项目 b 的版本,并且使用了模块 c。从 1.6 或 1.7 版本开始,svn 已经完全崩溃了。
第二个警告:始终使用显式版本,不要引用 HEAD。否则,您将永远不知道您的项目是如何构建的(外部模块的哪个版本)。如果有人更改了 HEAD 并且其他人进行了更新,那么开发人员将始终会遇到损坏的构建。