我正在尝试将先前版本中已删除的文件从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
答案 0 :(得分:9)
默认情况下,当您指定存储库中文件的URL时,SVN假定您引用HEAD中的对象 。所以你的命令实际上意味着:
xxx
当然,由于HEAD中不再存在该文件,因此在第一步失败。您需要使用所谓的“peg revision”在版本filename
中显式引用使用被称为xxx
的对象:
svn copy -r xxx svn+ssh://repository/filename@xxx ./filename
如果你感到勇敢,SVN的书有a more in-depth explanation of peg revisions ......