Deshacer svn add sin revertir las ediciones locales


157

Accidentalmente ejecuté svn add *y agregué un montón de archivos que no deberían estar en el repositorio. También tengo ediciones locales en algunos archivos que quiero mantener. ¿Hay una manera simple de deshacer svn addsin revertir las ediciones locales? La principal sugerencia que veo en Google es svn revert, que supuestamente deshace las ediciones locales.

Respuestas:


282

Eso sería:

svn rm --keep-local

Lo mismo me pasó a mí. :-PAGS

Muchas personas han comentado que debes usar:

svn rm --keep-local FILENAME

para aplicar el comando en uno o varios archivos, en lugar de todo, lo que puede tener efectos secundarios no deseados.


1
Esto no tuvo ningún efecto para mí. Ejecuté el código como arriba (incluido el período final) desde la carpeta base. No estoy seguro si me estoy perdiendo algo.
zzz

8
Tenga en cuenta que debe agregar el nombre del archivo al comando para que así sea svn rm --keep-local FILENAME. El FILENAMEpuede usar * para que coincida con varios archivos (si se tiene la suerte de tener un patrón).
Adam Badura

44
¡advertencia! - el uso de este comando al usar svn externals elimina también todos los externos adjuntos ...
kostja

2
Si confirma esto, ¿la confirmación no incluirá la eliminación del archivo en cuestión del repositorio?
jwg

1
//, tengo la misma pregunta que jwg. Hice algunas ediciones en un archivo controlado por SVN. Quiero mantener esas ediciones localmente. Sin embargo, no quiero eliminar el archivo del repositorio por completo. Simplemente no quiero enviar mis ediciones locales al archivo.
Nathan Basanese

34

Si esos archivos están en un directorio que aún no se ha confirmado, puede eliminar todo el contenido del directorio de la próxima confirmación haciendo lo siguiente:

svn delete --keep-local /path/to/directory

Sin embargo, si esos archivos ya están en el repositorio y ahora contienen cambios que no desea confirmar, puede confirmar el resto de los archivos mediante listas de cambios:

svn changelist somename /file/to/be/committed
svn commit --changelist somename

7

Puede arreglar su pago de la siguiente manera:

  1. Copia de seguridad de sus archivos locales
  2. Revertir el pago de SVN
  3. Restaurar los archivos

-

rsync -av --exclude .svn/ YOURDIR/ YOURDIR.bak
svn revert -R YOURDIR
rsync -av YOURDIR.bak/ YOURDIR 

El comando final siempre crea un nivel de directorio adicional, es decir, termina con YOURDIR/YOURDIR/, aunque creo que el problema está en la creación del comando de copia de seguridad inicial YOURDIR.bak/YOURDIR/.
James

Para evitar que rsync requiera una barra inclinada final en el directorio de origen. Edité la respuesta.
Brice M. Dempsey

3

Tuve el mismo problema, agregué accidentalmente un directorio / svn addque contiene los archivos binarios y el archivo compilado. Este comando realmente elimina el directorio.

svn rm --force <directory-name>

En mi caso, no necesito el directorio, por lo que fue seguro eliminarlo. Si desea guardar los archivos / directorios, guárdelos en un lugar antes de aplicar el comando y después de copiarlos

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.