2011-07-06 91 views
16

所以,我這樣做之前,我只是似乎無法找出什麼地方不對頭這個時候......SVN複製-r [版本號] [URL] [路徑]

我想從SVN恢復文件。我去了,發現它被刪除(或至少存在最後我用SVN列表-r驗證。)

這裏是我的命令修訂:

svn copy -r 925 url/to/repo/foldername htdocs/foldername 

我不斷收到錯誤:

svn: '/!svn/bc/973/.../htdocs/templates' path not found 

從我的理解,這意味着它在尋找修訂973(這是HEAD),而不是925

缺少什麼我在這裏?

+0

與其他svn命令存在同樣的問題,如'svn ls'。 –

回答

31

我想你想要的是:

svn copy url/to/repo/[email protected] htdocs/foldername 

svn help copy

usage: copy SRC[@REV]... DST 

Peg and Operative Revisions

使用-r REV without @REV意味着「當前文件的祖先(修訂REV)」,而@REV沒有-r rev意味着「REV文件」。這種語義差異很重要,因爲svn跟蹤副本(和重命名)。

+0

完美 - 做到了。這不僅是正確的答案,而且非常及時。謝謝! – matmer

+1

如果你能解釋爲什麼用'-r XYZ'而不是'url @ XYZ'(也許這是一個svn bug?),我會添加我的+1。 –

+0

@RichardHansen:我認爲唯一的原因是「因爲這是它的工作方式。」我認爲SVN項目已經在這些領域變得更加寬容了,實際上最新版本更加寬容了-c和-r等等......我不知道他們是否已經做出了這個特定的決定但是改變與否。對於「爲什麼?」的正式答案我想你不得不問Subversion開發團隊。 – Flimzy