当前位置:  开发笔记 > 编程语言 > 正文

跨存储库/项目的Subversion和共享文件?

如何解决《跨存储库/项目的Subversion和共享文件?》经验,为你挑选了3个好方法。

我正在将客户端的SourceSafe存储库(3个项目)迁移到SVN,其中两个项目共享源文件.(这些项目是单独的产品 - 具有不同的名称和发布版本等)

SVN解决了这个缺点吗?人们通常如何处理这种情况?

我知道/可以想到的选项

使用外部或外部或任何SVN.我听说由于各种原因这不是一个好的选择

创建一个包含源的新项目(可能称为共享).这个问题是我们仍然需要获取该代码(它不是一个库)并以某种方式将其导入项目中.可以证明它与上面的问题相同,并且它引入了额外产品/项目的开销.

只需签入两个存储库中的文件并交叉更新它们即可.这需要开发人员了解共享并记住签入.我想我可以编写一个脚本来检查所有已知的共享文件,并在需要时更新它们.

为共享的两个项目提供一个存储库.这让我不得不创建一个包含两者的顶级项目/存储库的问题,这是标记的问题.我真的不想标记顶部的伪项目.(标签,行李箱和分支机构并不是我想要它们的地方.)

我可能会选择最后一个选项.

还有其他意见吗?



1> mitchnull..:

我不知道你究竟听说过svn:externals,但我认为你应该在这里使用它.您甚至可以指定外部指向共享源的稳定分支或发布标记,甚至指向使用它的其他两个项目中的两个不同的标记(如果您在共享代码中修复了一些错误,可能需要这样做对于项目A,但您没有足够的时间用项目B)完全测试它.

您可以做的最糟糕的事情是您的选项3(交叉更新相同文件的两个版本).


我相信`svn:externals`只能引用文件夹; 不是文件.引用该文件夹的唯一方法是创建一个***第三个(!!)***项目,它只包含共享文件.

2> Martin Becke..:

安全的方法是让第三个项目将共享源构建到另外两个使用的库中.库项目有自己的SVN存储库.

您甚至可以使用只是标题的共享文件来执行此操作,只需将它们保留在lib项目目录中,然后将其添加到包含列表中.

在两个项目中拥有相同的文件,即使有了控制权,迟早也会遇到麻烦!



3> igor..:

万一有人发问这个问题,想知道您如何用TortoiseSVN引入外部资源,那么这里的文档是:

包括一个共同的子项目

外部物品

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有