Si ejecuto 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 cuando lo uso svn rm
?
svn
version-control
Juanjo Conti
fuente
fuente
Respuestas:
Desea la
--keep-local
opción de línea de comandos. Esto elimina el archivo del control de versiones sin eliminarlo de su sistema de archivos.Nota: El
--keep-local
solo afecta elsvn rm
de su copia. Otros usuarios pueden tener su propia copia local del archivo eliminado a menos que haya un conflicto entre su copia local y el repositorio debido a los cambios que han realizado. Este puede no ser el resultado deseado. Ver comentarios a continuación.fuente
Eliminar un archivo de SVN sin eliminarlo localmente en ninguna parte es un problema común. Un ejemplo destacado es el archivo .classpath en un proyecto Eclipse. Poner este archivo de configuración en 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, las confirmaciones comienzan a romper otros proyectos de Eclipse. Este es el punto que uno tiene para eliminar un archivo de SVN sin eliminar ist en ninguna parte.
hace el trabajo perfectamente en una máquina y en ese momento.
El problema es que otras máquinas pueden perder ese archivo (al actualizar) o resucitarlo (al confirmar). La falla de SVN no es manejar
--keep-local
en el repositorio ni propagarlo a otras copias de trabajo. Por lo tanto, en todas las otras máquinas, el comando anterior debe ejecutarse, mejor antes de cualquier confirmación o actualización.Esto, por supuesto, funcionará en un 90%, en el mejor de los casos. Las eliminaciones y las nuevas versiones sucederán de repente. Mi solución es tener todas las máquinas, tengo acceso directo o indirecto a, hacer
Esto es tan feo que casi no se le llama "solución". Sin embargo, siempre permitió reparaciones rápidas de cualquier accidente posterior.
fuente
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 versiones.
Espero que esto ayude.
fuente