Para muchas operaciones de Subversion, agregar el símbolo '@' al final de un archivo o argumento de URL le permite apuntar a una revisión específica de ese archivo. Por ejemplo, "svn info test.txt@1234" proporcionará información sobre test.txt tal como existía en la revisión 1234.
Sin embargo, cuando el nombre del archivo contiene una @, Subversion lo interpreta incorrectamente como un especificador de revisión:
svn info 'test @ .txt' svn: error de sintaxis al analizar la revisión '.txt'
He intentado comillas dobles y simples, así como escapar con '/', '\' y '@'. ¿Cómo puedo decirle a Subversion que trate los símbolos @ como parte del nombre del archivo?
Respuestas:
Del libro SVN (énfasis agregado):
fuente
news@11
podría ser un archivo.@foo
a@bar
,svn rename @foo@ @bar
se quejará@bar
; pero si lo hacessvn rename @foo@ @bar@
, el nuevo nombre será literalmente@bar@
. Para evitar esto, añadir./
(o.\
en las ventanas) para que quede claro que es una ruta local:svn rename @foo@ ./@bar
.La respuesta original es correcta, pero quizás no lo suficientemente explícita. Las opciones particulares de la línea de comandos de Unix son las siguientes:
o
o
Acabo de probar los tres.
fuente
svn info [email protected]@
y funcionó también. ¡Sí, sin comillas ni barras!bash
carretera :)Solución para agregar múltiples archivos en diferentes subcarpetas:
Simplemente reemplace el "png" en " @ .png" para el tipo de archivos que desea agregar.
fuente
@
en su nombre como un caso especial, puede añadir con seguridad el@
símbolo en todos los nombres de archivo:for file in $(find ./ -type f -iname "*.png"); do svn add "$file@"; done
. Además, ¿este enfoque no deja su repositorio svn con una estructura de archivo / directorio inconsistente con la copia local de trabajo?exec
de find podría ser más fácil:find . -type f -name "*@*.png" -exec svn add {}@ \;
para agregar el siguiente archivo: [email protected] haga lo siguiente: svn add image \ @ 2x.png @
fuente
Simplemente agregue
en el archivo que necesita usar, sin importar qué comando SVN sea, por ejemplo:
a
fuente
En mi caso, necesitaba eliminar archivos de un repositorio SVN que contenía un signo @:
Esto no funcionaría:
Pero esto hizo:
fuente
Para agregar varios archivos, hay una solución alternativa:
fuente
svn status | awk '/\.png/ {print $2"@"}'| xargs svn add
Para los comandos svn con 2 argumentos como "mover", debe agregar "@" solo en el parámetro izquierdo (primero). Por ejemplo:
Esta línea es importante: $ svn move README @ txt @ README2 @ txt
Como puede ver, no necesitamos agregar "@" en "README2 @ txt"
fuente
@David H
Acabo de probar un comando similar sin escapar de los símbolos @ y todavía funciona bien
Esto está en GNU bash, versión 3.2.48 (1) -release (x86_64-apple-darwin10.0) y svn 1.6.16
fuente
La única solución que funcionó para mí fue la misma sugerida por @NPike
svn revertir 'ruta / a / nombre de archivo @ ext @'
fuente
Hoy tuve el problema con los nombres de archivo generados a partir de direcciones de correo electrónico (¡no es una muy buena idea!).
Solución, usando
printf
opciones defind
, y expansión de shellfuente