如何从SVN获取之前的版本?

如何从SVN获取之前的版本?,svn,Svn,我已将最新版本签出到我的工作副本中,但它已损坏-无法编译 如何在头部之前获得先前的修订?如果它也被破坏了-上一个之前的上一个?您必须获取当前版本号,将其减少1,并将其更新到该版本,直到找到一个有效的版本。我不认为Subversion可以在这里为您提供多少自动帮助,因为它不知道将编译哪个版本 有关如何获取当前修订号,请参见以下问题: 对于陆龟vn,使用上下文菜单:svn->更新至修订版 供命令行使用 svn update --revision svn://repo 如果你真的想对它感兴趣,

我已将最新版本签出到我的工作副本中,但它已损坏-无法编译


如何在头部之前获得先前的修订?如果它也被破坏了-上一个之前的上一个?

您必须获取当前版本号,将其减少1,并将其更新到该版本,直到找到一个有效的版本。我不认为Subversion可以在这里为您提供多少自动帮助,因为它不知道将编译哪个版本

有关如何获取当前修订号,请参见以下问题:


对于陆龟vn,使用上下文菜单:
svn->更新至修订版

供命令行使用

svn update --revision svn://repo

如果你真的想对它感兴趣,你可以制作一个脚本,在那里你给它当前的头版本号,然后从那里开始向下修改,直到
make
(或其他)没有返回错误

svn info http://[server]:[host]/myrepo
将为您提供存储库的修订版


然后使用
svn update-r[revision-1]http://[server]:[host]/myrepo更新本地副本


如果没有一个关键字(HEAD、BASE、COMMITTED或PREV)正是您想要的,那么只需查看日志并找到一个明确的修订号即可进行更新。

如果您知道一个好版本的修订号,则不要从HEAD后退,直到找到破坏该版本的修订号,您可以使用“”来查找问题。如果你有任何超过几次的修订,因为上次已知的好,这将节省你的时间

伪代码:

known_good=whatever
known_bad=head_revision
start:
    candidate=(known_good + known_bad) / 2

    build candidate

    if success
        known_good=candidate
    else
        known_bad=candidate

    if (known_good + 1) == known_bad
        goto end

    go to start:
end:
在奇数的修订版上稍加修饰