2011-07-06 19 views
16

Por lo tanto, he hecho esto antes y me parece que no puede averiguar lo que está roto esta vez ...svn copy [número de revisión] -r [url] [ruta]

Estoy intentando para restaurar un archivo desde SVN. Fui y encontré la revisión en la que se eliminan (o al menos el pasado existía He verificado mediante el uso de svn list-r.)

Aquí es mi comando:

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

Me aparece un error:

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

Desde mi entender lo que significa su mira en la revisión 973 (que es el jefe) en lugar de 925.

Qué me estoy perdiendo aquí?

+0

Este mismo problema existe con otros comandos svn, como 'svn ls'. –

Respuesta

31

Creo que lo que desea es:

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

De svn help copy:

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

Ver Peg and Operative Revisions.

El uso de -r REV without @REV significa "el ancestro (revisión REV) del archivo actual" mientras que @REV sin -r rev significa "el archivo en REV". Esta diferencia semántica es significativa porque svn rastrea copias (y cambia el nombre).

+0

Perfecto, eso fue todo. No solo fue la respuesta correcta, sino muy oportuna. ¡Gracias! – matmer

+1

Agregaré mi +1 si puede dar una explicación de por qué está mal usar '-r XYZ' en lugar de' url @ XYZ' (¿quizás esto es un error svn?). –

+0

@RichardHansen: Creo que la única razón es "porque así es como funciona". Creo que el proyecto SVN se ha estado moviendo para ser más indulgente en estas áreas, y de hecho la última versión es mucho más indulgente con -c vs. -r, etc. No sé si han hecho ese particular cambio o no, sin embargo. Para una respuesta oficial para "¿por qué?" Creo que tendrías que preguntarle al equipo de desarrollo de Subversion. – Flimzy

Cuestiones relacionadas