tortoise que ignorar español desvincular carpeta borrar archivo svn version-control

que - tortoise svn server



¿Cómo eliminar un archivo del control de versión sin eliminarlo? (3)

Si ejecuto el svn rm file , el archivo se elimina de la copia de trabajo local.

Lo que hago ahora es:

$ cp file file2 $ svn rm file $ svn ci $ mv file2 file

¿Cómo evito que svn también elimine el archivo local al usar svn rm ?


Desea la --keep-local -línea de comando. Esto elimina el archivo del control de la versión sin eliminarlo de su sistema de archivos.

$ svn rm --keep-local my_important_file


Eliminar un archivo de SVN sin eliminarlo localmente es un problema común. Un ejemplo destacado es el archivo .classpath en un proyecto de Eclipse. Poner este archivo de configuración bajo SVN es maravilloso, siempre y cuando todas las máquinas utilizadas en el proyecto tengan la misma instalación de Eclipse y Java. Una vez que se viola esta condición, los commits empiezan a romper otros proyectos de Eclipse. Este es el punto que uno tiene que eliminar un archivo de SVN sin eliminarlo en ninguna parte.

svn rm --keep-local .classpath

hace el trabajo perfectamente en una máquina y en ese punto en el tiempo.

El problema es que otras máquinas pueden perder ese archivo (en la actualización) o resucitarlo (en la confirmación). La falla de SVN no es para manejar - --keep-local en el repositorio ni para propagarlo a otras copias de trabajo. Por lo tanto, en todas las demás máquinas arriba, el comando debe ejecutarse, lo mejor antes de cualquier confirmación o actualización.

Esto, por supuesto, funcionará al 90%, en el mejor de los casos. Las eliminaciones y nuevas versiones ocurrirán de forma repentina. Mi solución es tener cada máquina, tengo acceso directo o indirecto a, hacer

svn rm --keep-local .classpath copy .classpath .classpath-nameOfTheMachine svn add .classpath-nameOfTheMachine

Esto es tan feo que casi no se llama una "solución". Sin embargo, siempre permitió reparaciones rápidas de cualquier accidente posterior.


No tengo una respuesta a esta pregunta precisa, pero sí tengo una respuesta a una pregunta relacionada, que es cómo eliminar todos los archivos (es decir, no uno específico) en un directorio del control de versiones sin eliminarlos localmente. Esta solución proviene de una implementación científica de Linux.

ls -a .svn

debería mostrar el directorio svn que almacena los datos de control. Simplemente:

rm -r .svn

se deshará de este directorio. Luego escribiendo:

svn status

producirá un error de ''advertencia: este directorio no es una copia de trabajo'', porque ya no está bajo control de versión.

Espero que esto ayude.