usuarios tutorial tortoise subir repositorio proyecto ignorar español eliminar desvincular crear con como carpeta archivos svn undo delete-file

tortoise - svn tutorial español



Agregar archivos a SVN y luego eliminar antes de confirmar (6)

Supongo que fui descuidado.

Agregué un montón de archivos a svn con svn add , luego vi algunos archivos agregados que no quería, así que los borré con rm .

Ahora no puedo comprometerme más porque faltan archivos en la confirmación. Intenté svn la limpieza pero no ayudó.

Mi opción de trabajo ahora es eliminar manualmente cada directorio .svn pero eso parece incorrecto.


Como lo entiendo ustedes tienen esta situación:

$ touch foo $ svn add foo A foo $ rm foo $ svn ci svn: Commit failed (details follow): svn: ''foo'' is scheduled for addition, but is missing

Así que para solucionarlo haz esto: (gracias Linus!)

$ svn revert foo Reverted ''foo''

o puedes hacer esto:

$ touch foo $ svn delete --force foo

para cada archivo, y debería poder registrarse sin problemas.


Esta es en realidad una versión ligeramente modificada de @Gonzalo Mateo, que resolvió mi problema.

svn st | grep ''!'' | sed ''s/!M /(.*/)$/"/1"/'' | xargs svn revert --depth infinity


Esto solucionó mi problema

svn st | grep ''!'' | sed ''s/!M /(.*/)$/"/1"/'' | xargs svn revert --depth infinity

Una cosa que debes tener en cuenta es que el código anterior solo funciona para las últimas adiciones. Entonces, haga otro svn ci si da un error y luego ejecute el código anterior nuevamente. Luego nuevamente svn ci hasta que haya revertido todos los problemas.

Bono: Agregar un alias (esto es para Oh-My-ZSH Zsh Shell)

# SVN revert everything like reset hard alias sra="svn st | grep ''!'' | sed ''s/!M /(.*/)$/"/1"/'' | xargs svn revert --depth infinity"

Ahora sra ie SVN Revert All hará que tu vida sea más fácil.


Si agregó una carpeta con subcarpetas y archivos dentro, eliminó la carpeta antes de confirmarla. En este caso puedes hacer lo siguiente.

$ svn revert <Deleted Folder Name> --depth infinity


Si desea svn add X un archivo a svn add X , pero no se ha comprometido, más tarde decide que desea eliminar ese archivo (y no cometerlo); simplemente debe revertir su comando svn add X con svn revert X

Entonces "deshará" el complemento aún no comprometido.


Si tiene varios directorios con varios archivos eliminados, el siguiente comando podría ayudar:

svn st | grep ''!M'' | sed ''s/!M /(.*/)$/"/1"/'' | xargs svn revert

Primero recomiendo listar los archivos que serán revertidos. Podemos hacerlo eliminando la última tubería: svn st | grep ''!M'' | sed ''s/!M /(.*/)$/"/1"/'' svn st | grep ''!M'' | sed ''s/!M /(.*/)$/"/1"/'' svn st | grep ''!M'' | sed ''s/!M /(.*/)$/"/1"/'' .

Paso a paso, explicación del comando:

  • svn st : enumera los archivos agregados y eliminados incorrectamente con el símbolo !M
  • grep ''!M'' Encuentra las líneas con !M
  • sed ''s/!M /(.*/)$/"/1"/'' Esto se usa para deshacerse de !M con los espacios. También citará los nombres de los archivos para que no tenga que preocuparse si los archivos incluyen espacios en ellos.
  • xargs svn revert Esto revertirá todos los archivos listados.