una trabajo tortoise tag subir proyecto excluir desvincular crear copia con como comandos carpeta archivos svn changelist

tortoise - svn no es una copia de trabajo



¿Cómo elimino una lista de cambios existente de SVN? (3)

Elimine todos los archivos asociados de una lista de cambios y desaparecerá.

Manera oficial

Ver https://stackoverflow.com/a/15992735/253468

svn changelist --remove --recursive --cl my_changes .

Manera manual

es decir svn changelist --remove file.name

D:/Programming>mkdir test D:/Programming>cd test D:/Programming/test>svnadmin create . D:/Programming/test>svn co file:///D:/Programming/test co Checked out revision 0. D:/Programming/test>cd co D:/Programming/test/co>echo "hello" > test.file D:/Programming/test/co>svn add test.file A test.file D:/Programming/test/co>svn status A test.file D:/Programming/test/co>svn changelist mycl test.file A [mycl] test.file D:/Programming/test/co>svn status --- Changelist ''mycl'': A test.file D:/Programming/test/co>svn changelist --remove test.file D [mycl] test.file D:/Programming/test/co>svn status A test.file

Automatización en Bash

# Remove all files from a specific CL # Usage: svn_remove_cl my_changes function svn_remove_cl() { svn status |/ sed -n "/--- Changelist ''$1'':/,/--- Changelist.*/p" |/ grep -v ''^--- Changelist'' |/ awk ''{print $2}'' |/ xargs svn changelist --remove }

Explicación:

  • svn status : muestra todos los archivos modificados
  • sed : encuentra la lista de cambios y toma la salida después del título CL hasta la siguiente CL o el final de la salida del svn status
  • grep : elimina los títulos CL del búfer
  • awk : eliminar los estados del archivo, guardar solo los nombres de los archivos (es decir, la segunda columna)
  • xargs : pon cada línea como argumento para svn changelist
    (Es posible que necesite ajustes si tiene espacios o caracteres especiales en los nombres de archivo)

Ejecución de ejemplo

~/tmp/wc$ svn status A d --- Changelist ''cl_a'': A a A e A f --- Changelist ''cl_x'': A b A c ~/tmp/wc$ svn_remove_cl cl_x Path ''b'' is no longer a member of a changelist. Path ''c'' is no longer a member of a changelist. ~/tmp/wc$ svn status A b A c A d --- Changelist ''cl_a'': A a A e A f

Creé una lista de cambios haciendo ...

$ svn changelist my_changes

... le agregó archivos, y luego confirmó la lista de cambios ...

$ svn ci --changelist my_changes --keep-changelists

... así que ahora, he "guardado" mi lista de cambios y aparece cada vez que veo el estado.

$ svn status ... modified/added/deleted files listed here... --- Changelist ''my_changes'': ... files that are a part of this changelist listed here...

"Guardé" la lista de cambios por algún motivo, pero ya no la necesito, así que estoy listo para eliminarla. ¿Cómo elimino esta lista de cambios de SVN? Sé cómo eliminar archivos de la lista de cambios, pero no la lista de cambios propiamente dicha.


Para aquellos que se preguntan, puede hacer esto con un solo comando con svn. Simplemente navegue hasta el directorio de nivel de los archivos bajo su lista de cambios existentes y ejecute:

svn changelist --remove --recursive .

Esto recorrerá todos los archivos del directorio actual e intentará desasociarlos de la lista de cambios.


Si desea eliminar solo una lista de cambios (p. Ej. My_changes) vaya a la carpeta de nivel superior de su copia de trabajo y ejecute:

svn changelist --remove --recursive --cl my_changes .