SVN外部 - 浮动和固定外部之间有什么东西?

时间:2010-09-03 10:42:21

标签: svn svn-externals

我知道人们建议外部应始终指向标签或固定到特定的修改(或两者为皮带和支架旅!)。当外部指向不变或缓慢变化的依赖时,我对这种方法很满意。但是,有时候我需要对快速变化的依赖关系进行外部处理,然后将外部设置为指向依赖关系的主干的工作量较少(尽管风险较大)。

我真正想要的是一个中间功能,我称之为“跟踪外部”。他们的工作方式如下:

a)如果我结账,我会得到外部的负责人

b)如果我查看修订版X,我会获得外部修订版X

这将允许我总是重新创建旧版本,但也允许我接触到依赖项的最新更改。

SVN中似乎不存在此功能,但它似乎是一个明显的功能。有没有人知道这个功能是否存在或是否已经计划好,或者是否可以通过某些SVN技巧进行模拟?

由于 阿卡什

2 个答案:

答案 0 :(得分:1)

我认为你的要求不是正确使用外部因素。你做错了。

外部代码从......其他地方获取代码。 “其他地方”可能是您当前存储库中的不同位置,或者它可能是您计算机上的不同存储库,或者是位于世界另一端的计算机上的存储库...

除了某些特殊情况之外,你将你的存储库和外部版本保存在revision-lockstep中(如果从同一存储库中的不同位置拉出外部,你可以这样做)想要检查修订版X的您的存储库以及外部存储库中的相同修订版X将以失败告终。

如何确保主存储库修订版与外部存储库版本保持同步?当您的存储库处于修订版1000时,应该发生什么,而外部存储库仅处于修订版300?

实际上是为了回答你的问题:我不知道是否有任何类似的计划用于SVN的未来版本,但我敢打赌不会。至于'技巧',您可以通过创建某种包装脚本来实现这一点,该脚本可以修改外部属性以将它们固定在您实际结账前检查的修订版本上。不是我认为实用的东西,也不是完全无足轻重的东西。

答案 1 :(得分:0)

如果你只是在外部使用分支而没有指定特定的修订,那么这个外部是浮动的,这意味着每次你更新它时你都会得到那个分支的头部......你可以在使用trunk时做同样的事情。但是在你要发布之前你必须将那个外部固定到一个特定的状态,最好的做法就是使用一个标记。