假设我设置了一些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。)
答案 0 :(得分:1)
没有PEGged外部的不是简单的方法(并且使用挂钩的外部设备保持“总是HEAD”是可以自动化的/简易b /手工)
对于带有非挂钉外部件的“时间倒车机”,为了将整个WC的状态返回到主仓库中的修订版N的状态,您必须执行:
svn log -l 1 -r N
中写入此修订版的时间戳DATE
svn log -l 1 -r {'DATE'}
中的每个外部,并写入修订号(X,Y,Z)svn up -r N
svn up -r (X|Y|Z)
产生的混合工作副本将为您提供结果(不是100%保证,因为修订版N和N + 1修订版的外部可能也更新,但你没有它的痕迹)