two tortoise tag crear branches svn terminal

svn - tag - tortoise merge



SVN Confirmar archivos específicos (7)

Además de enumerar los archivos explícitamente como se muestra en unwind y en Wienczny , puede configurar las listas de cambios y registrarlas. Estos le permiten administrar conjuntos disjuntos de cambios a la misma copia de trabajo.

Puede leer sobre ellos en la versión en línea del excelente libro SVN .

¿Hay alguna forma de confirmar solo una lista de archivos específicos (por ejemplo, solo uno de la lista de archivos que SVN quiere confirmar)?

Estoy trabajando en MAC OS X bajo Terminal, sin ninguna interfaz de usuario.


Básicamente, colocas los archivos que quieres cometer en la línea de comandos.

svn ci file1 file2 dir1/file3


Debido a mi estado de subversión, tuve que ser creativo. svn st mostró los estados M , A y ~ . Solo quería M y A así que ...

svn st | grep ^[A/|M] | cut -d'' '' -f8- > targets.txt

Este comando dice encontrar todas las líneas de salida por svn st que comienzan con M o A , cortar usando delimitador de espacio, luego obtener columnas 8 hasta el final. Vuelque eso en objetivos.txt y sobrescriba.

Luego modifique target.txt para eliminar más la lista de archivos. A continuación, ejecute a continuación para cometer:

svn ci -m "My commit message" --targets targets.txt

Probablemente no sea el caso de uso más común, pero espero que ayude a alguien.


Hago una (sub) carpeta llamada "ocultar", muevo el archivo al que no quiero comprometerme. Luego haga mi compromiso, ignorando la queja sobre el archivo que falta. Luego mueva el archivo oculto de hide a ./

No conozco ningún inconveniente en esta táctica.


Por supuesto. Solo liste los archivos:

$ svn ci -m "Fixed all those horrible crashes" foo bar baz graphics/logo.png

No tengo conocimiento de una forma de decirle que ignore un determinado conjunto de archivos. Por supuesto, si el shell enumera fácilmente los archivos que desea confirmar, puede usar eso:

$ svn ci -m "No longer sets printer on fire" printer-driver/*.c

También puede hacer que el comando svn lea la lista de archivos para confirmar desde un archivo:

$ svn ci -m "Now works" --targets fix4711.txt


Utilice listas de cambios. La ventaja sobre la especificación de archivos es que puede visualizar y confirmar que todo lo que desea está realmente incluido antes de comprometerse.

$ svn changelist fix-issue-237 foo.c Path ''foo.c'' is now a member of changelist ''fix-issue-237''.

Hecho esto, svn ahora mantiene las cosas separadas para ti. Esto ayuda cuando haces malabares con múltiples cambios

$ svn status A bar.c A baz.c --- Changelist ''fix-issue-237'': A foo.c

Finalmente, dile que cometa lo que quisiste cambiar.

$ svn commit --changelist fix-issue-237 -m "Issue 237"


prueba este script ...

#!/bin/bash NULL="_" for f in `svn st|grep -v ^/?|sed s/./ *//`; do LIST="${LIST} $f $NULL on"; done dialog --checklist "Select files to commit" 30 60 30 $LIST 2>/tmp/svnlist.txt svn ci `cat /tmp/svnlist.txt|sed ''s/"//g''`