Tengo un archivo de configuración que está bajo control de versión usando subversion. Todos tienen su propia copia de este archivo, y necesito que esto no se comprometa nunca. Sin embargo, como dije, ya hay una copia bajo control de versión. Mi pregunta es: ¿cómo elimino este archivo del control de versión sin eliminar el archivo de todos, y luego lo agregué a la lista de ignorar para que no se confirme? Estoy usando la línea de comandos de linux svn.SVN: Ignorando un archivo ya comprometido
Respuesta
Realice una comprobación limpia, svn delete
el archivo y añada la opción ignorar. Entonces comete esto. Todos los demás tendrán que tener cuidado (una vez) de que su copia local no se elimine en el siguiente svn update
, pero después de eso, el archivo local se mantendrá sin ser molestado e ignorado por SVN.
Cómo (como "todos los demás") evita el Eliminar en la actualización? –
Aléjelo antes de ejecutar la actualización. Copia de nuevo después. –
¿Cómo es que no hay una manera más fácil de hacer esto? ¿Alguien puede explicar? – DaveS
Si elimina el archivo del control de versión, ¿cómo lo obtiene un desarrollador nuevo en el proyecto (o el que accidentalmente borró su copia local) después del pago inicial? ¿Qué pasa si hay adiciones al archivo de configuración?
Yo sugeriría lo siguiente: Mantener un archivo de configuración por defecto (sin contraseñas, nombres de host, las cadenas de conexión, etc.) en SVN, nombre algo así como settings.dist
, y dejar que el código funcione con una copia de este, llamado settings
. Cada desarrollador tiene que hacer esta copia una vez, y luego puede trabajar con su configuración personalizada. Si hay adiciones, agréguelas al settings.dist
; todos los demás recibirán una actualización y podrán fusionarlas en su copia personalizada.
simplemente defina un archivo que contenga configuraciones que anularán las predeterminadas. Este archivo no está registrado en Subversion y cada desarrollador es responsable de mantener este archivo de acuerdo con sus entornos.
En un mundo basado en Ant, que tendría los archivos:
settings.properties
settings-local.properties (ignored for Subversion)
y en su archivo
<property file="settings-local.properties"/>
<property file="settings.properties"/>
build.xml
Para aquellos que no pudieron conectar los puntos:
- modificar el archivo build.xml como propuesto
- s y los setting-local.properties como ignorados
- en un objetivo
init
de su construcción, copiar los settings.properties a settings-local.properties - esperar un par de días hasta que todos hayan tenido la oportunidad de ejecutar este objetivo
- eliminar los setting.properties de la subversión
Voila, cada desarrollador tiene sus propias setting-local.properties y todo se realiza de forma automática (y ningún desarrollador perdido su configuración, lo que ocurre si brutalmente elimina el archivo de Suvbersion y no hay "Todos los demás tendrán que cuidarse ...")
No ayuda a solucionar el problema aunque –
Es extraño que esta respuesta haya sido rechazada tantas veces, ya que es la única que no ignoró la parte sobre no eliminar el archivo local de todos. –
[[Soy nuevo en subversión, así que tal vez esto no tenga sentido. marcando esto como wiki: si conoce la respuesta correcta, por favor, APÉNDESE en la sección posterior]]
¿No podría tener un conjunto personalizado de pasos de verificación para que cada usuario obtenga una carpeta de configuración diferente?
$ svn checkout http://example.com/project project .. $ dir project original_settings\ folder1\ folder2\ $ svn checkout http://example.com/project/aaron_settings project\settings .. $ dir project original_settings\ folder1\ folder2\ settings\
O para los nuevos usuarios
$ svn import project\settings http://example.com/project/aaron_settings
Lo que estoy recibiendo es que desea que cada usuario tiene una vista personalizada del repositorio. En otros sistemas de control de versiones, podría configurar una lista personalizada de los proyectos que estaba usando, los que no era y los lugares extraños.
¿Funciona esto en subversión? El código anterior parece realmente arriesgado, pero tal vez lo estoy haciendo mal.
WIKI:
(nada aún)
Después de eliminar el archivo, los usuarios tendrán que recuperar el archivo desde el repositorio usando svn export
.
$ svn export -r x path ./
Dónde x
es una revisión, donde existía el archivo antes de que se ha eliminado, path
es la ruta completa al archivo, y ./
es donde se colocará el archivo.
Consulte svn help export
para obtener más información.
Tengo un problema similar. En mi caso, es un archivo de configuración de usuario generado automáticamente (estudio visual) que se ha registrado accidentalmente desde el principio del proyecto. Si bien eliminarlo podría funcionar, parece que es más correct
que se elimine del historial, ya que nunca se suponía que debía estar allí en primer lugar.
me encontré con este, lo que podría ser una característica nueva ya que esta cuestión fue publicada originalmente hace 7,5 años:
https://stackoverflow.com/a/6025750/779130
parece una idea sería:
1) create a dump of the project.
2) filter the dump using `svndumpfilter` to exclude the unwanted file(s).
3) load the dump as a new project.
Este podría ser la única forma de deshacerse por completo del archivo. En la mayoría de los casos, el enfoque "eliminar e ignorar" podría ser lo suficientemente bueno.
- 1. SVN ignorando un archivo '.a'
- 2. ¿Cómo ignorar un archivo que ya está comprometido?
- 3. ¿Cómo puedo .gitignore y elimino un archivo ya comprometido sin afectar otras copias de trabajo?
- 4. Cómo svn ignora un archivo ya agregado al repositorio?
- 5. ¿Cómo deshago una transacción que ya se ha comprometido?
- 6. ¿Cómo elimino un archivo aún no comprometido que he agregado?
- 7. Al usar Trac y SVN juntos, ¿cómo sabré que un archivo se ha comprometido a resolver un determinado ticket?
- 8. SVN ignorando archivos ocultos (.project .pydevproject y archivos)
- 9. SVN ya no escribe .svn en todas las subcarpetas?
- 10. SVN "que ya está bloqueado error"
- 11. "unadd" un archivo a svn antes del commit
- 12. ¿Qué daño es causado por java.lang.IllegalStateException: Respuesta ya se ha comprometido
- 13. Ya no puedo ver las carpetas .SVN?
- 14. Ignorando archivos de proyecto Eclipse en el proyecto SVN
- 15. Ignorando un directorio usando ack's .ackrc
- 16. ¿Cómo puede svn co dar un "directorio ya existe error"?
- 17. SVN: ya existe un directorio con versiones del mismo nombre
- 18. svn Error: ya existe un directorio versionado del mismo nombre
- 19. cómo deshacer la eliminación de un archivo en SVN
- 20. comandante total ignorando carpetas svn en la carga de ftp
- 21. ¿Cómo actualizar un archivo en SVN?
- 22. Cómo eliminar el archivo "-" de svn?
- 23. svn diff para un archivo completo?
- 24. ¿Cómo pago un repositorio SVN, ignorando un directorio local sin versión?
- 25. ¿Cómo ramifico un archivo individual en SVN?
- 26. Cómo deshacer "Descartar" si no está comprometido
- 27. ¿Cómo mueves un archivo en SVN?
- 28. un archivo al parcial (Patch) a SVN
- 29. SVN - ¿Cómo cargar un solo archivo?
- 30. ¿Cómo puedo acceder al archivo comprometido desde un enlace de precompilación de Subversion en Perl?
posible duplicado de [svn ignorar sin borrar archivos?] (Http://stackoverflow.com/questions/951032/svn-ignore-without-deleting-files) – tchrist