2010-12-02 28 views
97

Probé a cometer varios archivos a través de diferentes directorios en una sola toma como abajo,SVN- cómo cometer varios archivos en un solo tiro

svn commit –m”log msg” mydir/dir1/file1.c mydir/dir2/myfile1.h mydir/dir3/myfile3.c etc etc 

Dado que, quería excluir algunos archivos de la lista de confirmación por lo He colocado cada nombre de archivo en la línea de comando como se indica arriba. Lo armé en el bloc de notas y llegaron alrededor de 25 archivos. Cuando lo copio y lo pego en la línea de comando, faltan los últimos archivos y supongo que esto podría ser una limitación de la línea de comandos (?). ¿Hay alguna opción que pueda aumentar la duración del búfer?

¿Hay alguna opción que pueda poner todos los archivos en un archivo de texto y ponerlo como argumento para svn commit?

+6

@Thi - Aquellos que no utilizan una interfaz gráfica de usuario para la subversión son masoquistas. Obtén Tortoise SVN o es equivalente a Linux. – tpow

+1

Si hay una restricción en la longitud del búfer, no estará en SVN, será en cualquier shell que esté utilizando. –

+20

@cinquTimo: es posible que prefiera usar una GUI para todo. Otras personas no. –

Respuesta

146

Puede usar un svn changelist para realizar un seguimiento de un conjunto de archivos que desea confirmar.

La página vinculada entra en muchos detalles, pero aquí hay un ejemplo resumen ejecutivo:

$ svn changelist my-changelist mydir/dir1/file1.c mydir/dir2/myfile1.h 
$ svn changelist my-changelist mydir/dir3/myfile3.c etc. 
... (add all the files you want to commit together at your own rate) 
$ svn commit -m"log msg" --changelist my-changelist 
3

Utilice un conjunto de cambios. Puede agregar tantos archivos como desee al conjunto de cambios, todo a la vez, o en varios comandos; y luego comprometerlos a todos de una vez.

+0

'" changeset ": comando desconocido' – Daniel

+1

http://svnbook.red-bean.com/en/1.6/svn.advanced.changelists.html - La palabra clave svn es" lista de cambios ", que se aborda en la primera respuesta y más votado. –

28

Puede utilizar --targets ARG opción donde ARG es el nombre del archivo de texto que contiene los objetivos para comprometerse.

svn ci --targets myfiles.txt -m "another commit" 
+0

Funciona para mí en este comando bash: 'encontrar. -name \ * my.mask | xargs svn ci -m "message" --targets -' – ASten

24

he tenido ningún problema que cometen algunos archivos como esto:

svn commit fileDir1/ fileDir2/ -m "updated!" 
+0

Esto no funciona para mí. Obteniendo el error "svn: '/' no es una copia de trabajo". Aquí he publicado mi pregunta, puedes mirar. http://askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/442751?noredirect=1#442751 –

+2

¡Sí, funciona perfectamente! –

+0

Sí funcionó bien. También dentro de mi raíz de documento podría comprometer todos los cambios dentro de la estructura de árbol de copia de trabajo con esto: > svn commit. -m 'mensaje de compromiso masivo' – GrigoreasP

Cuestiones relacionadas