2011-07-11 14 views
5

Agregué archivos a mi SVN pero no los envié (para que aparecieran con una bandera "A" en "estado de svn"). Pero luego decidí cambiarles el nombre antes de comprometerme. Quería agregarlos y confirmarlos, pero "estado svn" muestra los archivos con los nombres antiguos marcados con un "!" y no puedo deshacerme de esto. ¿Cómo lo hago? Incluso intenté "svn delete *"/"svn remove *" en el directorio, pero al hacer un 'svn status' después de esto todavía se muestran los archivos (que no están en mi disco duro local) con los nombres antiguos, marcados con un '! '.¿Cómo borro los archivos marcados con un "!" en 'svn status'?

Respuesta

3

Al usar comodines (*) el comando "eliminar" elimina todos los archivos que coinciden con este comodín, es decir, todos los archivos en el directorio.

Pero no hay ninguno - ya los ha eliminado. Por lo tanto, no se eliminan archivos por lo que se refiere a SVN.

Debe eliminar esos archivos explícitamente. Si hay muchos de ellos, se puede utilizar grep y awk para recuperar los archivos pertinentes desde la salida de estado:

svn st | grep `^!` | awk '{ print $2 }' | xargs svn rm 

(no probado, use con cuidado!)

+1

Wow, eso es molesto. Me aseguraré de no volver a hacer eso ... gracias por la ayuda. ¡Parece que debería haber una manera más fácil de hacer esto! Por cierto, no estaba claro lo que significaba "el comando" - Utilicé svn remove y funcionó. – svnn00b

+0

@ svnn00b Bueno, dije "* cuando uso comodines * ... el comando ...". Cuando escribe 'svn rm ', por supuesto, eso funciona. No se usan comodines aquí. –

+0

Sí, tomé su consejo y funcionó, como dije antes. Solo estaba señalando que podrías mejorar tu respuesta especificando qué comando quieres decir con "el comando". Thx nuevamente por la ayuda. – svnn00b

Cuestiones relacionadas