在签出存储库后,我想将其恢复到最旧版本。有什么办法吗?除了运行
svn log | grep '|' > log
(我必须对多个文件夹执行此操作)。然后获取最后一行的第一个单词,然后删除“r”,然后将其转换为整数。这假设没有提交消息包含“|”,我猜这是一个安全的假设,但本身并不“正确”。
注意:我知道如何检出特定的修订号。
在目录中运行svn revert ./*
也不起作用。执行此操作后,当我运行 时svn up
,它显示“在修订版 __”(最新修订版)。运行svn co -r
正常
答案1
您有两个问题。第一个是“如何快速找到存储库中目录的第一个修订版本”。这可能可以通过以下方式解决https://stackoverflow.com/questions/2675749/how-do-i-see-the-last-10-commits-in-reverse-chronoligical-order-with-svn使用svn log --limit 1 -r1:HEAD
which 可以限制您只显示目录中最早的单个日志消息。这使用“--limit 1”来仅显示单个消息,并使用“-r1:HEAD”来按从头到尾的顺序显示消息,而不是通常的从尾到头的顺序。
第二个问题是“一旦我知道了修订版本,如何让我的工作副本指向特定的修订版本?”
如您所知,svn co -r123
将为您提供版本 123 的全新工作副本。如果您已拥有工作副本,则只需使用svn update -r123
,即可将您的工作副本更新至该版本。
请注意,您还可以在修订说明符中使用日期,详情如下http://svnbook.red-bean.com/en/1.7/svn.tour.revs.specifiers.html#svn.tour.revs.dates. 还支持一些关键字,如HEAD。