"svn ls -rNNN" 和 "svn ls URL@NNN" 有什么区别?

What the difference between "svn ls -rNNN" and "svn ls URL@NNN"?

我尝试列出一个 SVN 存储库目录

svn ls -r21316 https://mysvnserver.com/repos/project1/trunk/development

我收到一个错误

svn: warning: W160013: '/repos/project1/!svn/bc/21361/trunk/development' path not found
svn: E200009: Could not list all targets because some targets don't exist

但如果我尝试

svn ls https://mysvnserver.com/repos/project1/trunk/development@21316

它工作正常。

这两种说法有什么区别?

表示法-rNNN称为有效修订,表示法somePath@NNN称为peg修订

不同之处在于,操作修订可能不明确:当您在以前的修订中移动文件夹时,无法确定要查看哪个对象。 如果您使用 peg revision,它会告诉 svn 您想要在此处查看给定修订版本中存在的对象。

SVN Book 解释的很好,太长了复制过来:Peg and Operative Revisions