2011-02-24 15 views
6

Estoy tratando de copiar un archivo eliminado de una versión anterior del repositorio svn a mi directorio de trabajo.copie el archivo de una versión anterior en el repositorio svn

sé que el archivo está presente en la revisión rxxx, porque hago svn log -v y puede ver el número de revisión antigua asociada con el archivo.

También hago svn info para encontrar el nombre del repositorio que en mi caso es de la forma svn+ssh://repository

que luego hacer svn copy -r xxx svn+ssh://repository name/filename ./filename

Pero se queja de que svn: File not found

Respuesta

8

Por defecto cuando se especifica la dirección URL de un archivo en un repositorio, SVN supone que se está refiriendo a un objeto en HEAD. Por lo que su comando en realidad significa:

  1. localice 'nombre' en la cabeza de
  2. traza la historia de ese archivo de nuevo a revisión xxx
  3. copiar el archivo como se veía a continuación, en el directorio actual

Por supuesto, esto falla en el primer paso ya que el archivo ya no existe en HEAD. Es necesario hacer referencia explícita al objeto de que utiliza ser llamado filename tiempo en la revisión xxx, utilizando lo que se conoce como una "revisión peg":

svn copy -r xxx svn+ssh://repository/[email protected] ./filename 

El libro SVN tiene a more in-depth explanation of peg revisions, si te sientes valiente. ..

+0

No creo que necesites '-r xxx' en el comando anterior. La revisión de la clavija debería estar bien. – Scribblemacher

Cuestiones relacionadas