Utilizo una generalización de la línea de comandos que ejecuta, llamada svnapply.sh
. No lo escribí, pero no recuerdo dónde lo encontré. Con suerte, el autor original será perdóname por volver a colocar aquí:
#!/bin/bash
#
# Applies arbitrary commands to any svn status. e.g.
#
# Delete all non-svn files (escape the ? from the shell):
# svnapply \? rm
#
# List all conflicted files:
# svnapply C ls -l
APPLY=$1
shift
svn st | egrep "^\\${APPLY}[ ]+" | \
sed -e "s|^\\${APPLY}[ ]*||" | \
sed -e "s|\\\\|/|g" | \
xargs -i "[email protected]" '{}'
por los comentarios, la secuencia de comandos permite ejecutar comandos arbitrarios en contra de todos los archivos con el mismo estado.
Actualización:
No sería demasiado difícil escribir un guión que toma una ruta de archivo como argumento y solicita al usuario añadir/eliminar y luego hace lo apropiado para ese archivo. Encadenando eso junto con el script anterior obtendría lo que desea.
Tenga en cuenta que sus líneas se rompen para los archivos no rastreados con espacios en su nombre – freespace
Use 'svn st | grep '^?' | sed 's/^ [?] */"/ '| sed' s/$ /"/'| xargs svn add' en su lugar, que no sufre el problema de espacio en blanco – freespace