从svn存储库中的先前版本复制文件

时间:2011-02-24 02:09:26

标签: svn

我正在尝试将先前版本中已删除的文件从svn存储库复制到我的工作目录。

我知道该文件存在于修订版 r xxx 中,因为我执行svn log -v并且可以看到与该文件关联的旧版本号。< / p>

我也svn info找到存储库名称,在我的例子中,形式为svn+ssh://repository

然后我做svn copy -r xxx svn+ssh://repository name/filename ./filename

但它抱怨svn: File not found

1 个答案:

答案 0 :(得分:9)

默认情况下,当您指定存储库中文件的URL时,SVN假定您引用HEAD中的对象 。所以你的命令实际上意味着:

  1. 在HEAD中找到'filename'
  2. 将该文件的历史记录追溯到修订版xxx
  3. 将文件按原样复制到当前目录
  4. 当然,由于HEAD中不再存在该文件,因此在第一步失败。您需要使用所谓的“peg revision”在版本filename中显式引用使用被称为xxx的对象:

    svn copy -r xxx svn+ssh://repository/filename@xxx ./filename
    

    如果你感到勇敢,SVN的书有a more in-depth explanation of peg revisions ......