如何管理SVN的历史外部

时间:2010-10-06 20:06:22

标签: svn tortoisesvn

我有一些项目使用了一些可能会改变加班时间的外部(库)。我尝试使用trunk / branches / tags模式保持项目清洁,当我制作标签(或发布)时,我想及时冻结整个源代码,即当时的外部因素

我可以想到两种方法:

  • 我可以将外部设置为指向特定的修订,但这似乎有点麻烦,除非有自动化(一些不错的shell命令使所有外部指针指向当时的最新版本?)
  • 我可以本地化外部,如果再次有一些很好的自动化将抓住当前的外部并“本地化”它,即使其成为项目中的永久硬拷贝。

TortoiseSVN存在这样的事情吗?或者我是否以某种方式破坏了系统?

1 个答案:

答案 0 :(得分:2)

据我所知,TortoiseSVN没有提供如此复杂的功能。您需要实现自己的脚本来检查这些外部/更改它们,即您所谓的自动化。

实际上,我们在项目中也有同样的不便。我们有一个项目树(主干 - 我们的工作源),外部标签(其他团队工作源),他们有自己的标签,而且,我们有一个项目树的标签当然。所以,我们嵌套了3,4和更多订单的外部。我们此时所做的是perl脚本(调用svn命令行工具并处理其结果),它以递归方式检查项目树标记中的所有外部是否都是标记的外部(这是我们自己的规则 - 标记所有外部必须是标签)。这个检查的要点是,如果至少有一个外部指向主干 - 我们项目树背后的主要思想将变得毫无意义(基于另一个重要规则 - 永远不会对标签进行更改)。通常,如果违反这些规则(以及甚至无法从这些来源构建应用程序),获取特定的源代码是一个问题。

总结一下,我建议在可能的情况下开发自己的概念,规则并使用脚本进行自动化。