svn:具有匹配修订的外部

时间:2014-08-19 18:35:55

标签: svn svn-externals

假设我设置了一些svn:externals来从我的存储库中的其他地方提取一些资源:

../../path/to/scripts scripts
../../path/to/data data

我希望工作副本的每个部分都来自同一版本,所以我不想将这些外部特征固定到特定的修订版号。如果我只是做一个svn up,这就像我想要的那样:

Fetching external item into 'scripts':
External at revision 15000.

Fetching external item into 'scripts':
External at revision 15000.

At revision 15000.

但是,如果我尝试查看特定版本(使用svn up -r 144444之类的内容),则外部版本仍然来自最新版本:

Fetching external item into 'scripts':
External at revision 15000.

Fetching external item into 'scripts':
External at revision 15000.

At revision 14444.

是否有一些svn:externals语法或一些固定脚本或命令可以用来轻松地将工作副本(包括其所有外部版本)更新到特定版本?

(特别是,我不想做svn --ignore-externals,因为我还要将外部更新到特定修订版,我不想将外部版固定到固定版本,因为我通常希望他们跟踪HEAD。)

1 个答案:

答案 0 :(得分:1)

没有PEGged外部的不是简单的方法(并且使用挂钩的外部设备保持“总是HEAD”是可以自动化的/简易b /手工)

对于带有非挂钉外部件的“时间倒车机”,为了将整个WC的状态返回到主仓库中的修订版N的状态,您必须执行:

  • 在wrapper-WC svn log -l 1 -r N中写入此修订版的时间戳DATE
  • 对于每个外部WC svn log -l 1 -r {'DATE'}中的每个外部,并写入修订号(X,Y,Z)
  • svn up -r N
  • 外部联盟的
  • svn up -r (X|Y|Z)

产生的混合工作副本将为您提供结果(不是100%保证,因为修订版N和N + 1修订版的外部可能更新,但你没有它的痕迹)