前言
天啊!
-
谁为 SVN 存储库发明了这种愚蠢的恢复策略?
- 通过反向合并不良修订(到“Last-Known-Good”)以自然、脑力驱动的方式撤消修订
-
Single Last-Known-Good 可以作为自定义 svn-property 存储在行李箱内,而不是混乱的标签
是谁发明了这种无脑的标签命名方式?
标签(和任何其他节点)本身包含所有需要的数据,可通过svn ls 或svn log(src、src rev、创建时间戳)访问
如果你想为所有人消除未来的麻烦,最好的选择是重新设计从头开始(见我上面的笔记 1-2)
脸
唯一的问题是我需要找到(在 Windows 上)标签以复制到 Revert
如果修订是标签名的前导部分,并且因为 Windows sort 它比可怕更糟糕,您必须重命名所有标签并添加前导零以正确数字排序,没有它排序会给出你有点像
/125__20140207_123000
/85__20140203_123000
/86__20140204_123000
/99__20140205_123000
或者,有成千上万的集合
/125__20140207_123000
/4025__20140307_123000
/85__20140203_123000
/86__20140204_123000
/99__20140205_123000
相反
/0085__20140203_123000
/0086__20140204_123000
/0099__20140205_123000
/0125__20140207_123000
/4025__20140307_123000
无论如何,所有现有标签的列表都是svn ls URL。 AFAICR(TBT !!!),无论名称如何,最新的标签总是在底部
> svn ls http://websvn.tigris.org/svn/websvn/tags
1.00/
1.01/
1.02/
...
2.3.3/
你可以使用最后一行的标签名并结合 URL,或者使用svn ls -v
>svn ls -v http://websvn.tigris.org/svn/websvn/tags
1268 dirkthom июн 27 2011 ./
2 tarmes фев 04 2004 1.00/
7 tarmes фев 05 2004 1.01/
14 tarmes фев 06 2004 1.02/
...
1268 dirkthom июн 27 2011 2.3.3/
并在第一列 (1268 dirkthom июн 27 2011 2.3.3/) 中通过最大修订找到最新鲜的标签(最后一列)或使用 svn log 作为标签,仅用于最新修订,带有文件列表,并获取最后一个标签作为受影响文件的一部分
>svn log -l 1 http://websvn.tigris.org/svn/websvn/tags -q -v
------------------------------------------------------------------------
r1268 | dirkthomas | 2011-06-27 15:12:51 +0600 (Пн, 27 июн 2011)
Changed paths:
M /package.cmd
M /package.sh
A /tags/2.3.3 (from /branches/2.3:1266)
...
A /tags/2.3.3 将为您识别最新标签