Tratar con un repositorio de subversión y un nuevo usuario que no entendía cómo funcionaba.
En pocas palabras, dado que su estructura local estaba en mal estado debido a la copia aleatoria de carpetas .svn, hice lo siguiente:
- copiado la estructura local a una carpeta llamada puesta en escena
- borró recursivamente todas las carpetas .svn del directorio provisional
- desprotegido el repositorio a una "carpeta limpia"
Ahora estamos en el último paso: obtener el contenido de la carpeta provisional para sobrescribir los contenidos limpios.
Necesito que un comando copie el contenido del directorio provisional en el directorio limpio, eliminando todo lo que solo está en el directorio limpio, PERO dejando intactas las carpetas .svn de la carpeta limpia.
Esto suena como un trabajo para rsync. ¿Sería correcto el siguiente comando?
rsync -avr --exclude=.svn* [staging] [clean]
rsync
subversion
SeanKilleen
fuente
fuente
rsync
con la--dry-run
opción de averiguarlo!Respuestas:
La
-C
opción para rsync puede ser lo que quieras.Sin embargo, no dejes que la breve descripción en la página del manual te engañe. Parece que la opción solo se aplica a CVS, pero dependiendo de su versión de rsync se saltará los archivos de casi todos los sistemas de control de versiones comunes existentes.
fuente
*.a
es para bibliotecas estáticas de iOS.Casi - esto debería ser
o cualquier otra forma de cita que evite que el shell expanda el comodín. (El comodín solo coincidiría con un archivo poco probable cuyo nombre comienza
--exclude=.svn
, pero es mejor no correr el riesgo y también funcionar correctamente incluso si el shell está configurado para ahogarse con comodines no coincidentes o expandirlos a la lista vacía. )-r
ya está incluido en-a
. El extrar
es simplemente superfluo, no hará ningún daño.--exclude
hace que los archivos que coinciden con su argumento no se copien ni se consideren para un recorrido recursivo. La dificultad habitual con rsync es otra, excluyendo un directorio, excepto ciertas partes del mismo. Consulte Filtro Rsync: copiar un patrón solo para obtener algunos consejos.En este caso particular, excluir los directorios de control de versiones es una forma rápida de obtener lo que desea.
fuente