Solución:
Hay dos formas de subversion, una es específica para el usuario y la otra se mantiene en el repositorio y, por lo tanto, afecta a todos.
Para obtener una lista de archivos ignorados globalmente (exclusivo para cada usuario / máquina), debe editar el archivo de configuración de subversión y modificar el ignora global directiva en el miscelánea sección. El archivo de configuración está documentado y la sintaxis es muy simple. Por ejemplo:
global-ignores = *.o
En un sistema UNIX, el archivo de configuración se encuentra en ~/.subversion/config
. En un sistema Windows, el archivo de configuración se encuentra en %APPDATA%Subversionconfig
o en el registro bajo HKCUSoftwareTigris.orgSubversionConfig
.
Una vez que configure esto, nunca agregará accidentalmente estos archivos a su repositorio, ni los archivos aparecerán como ? en tus svn stat
comandos. Si su repositorio ya tiene estos archivos, probablemente no le hará daño dejarlos como están, pero los cambios y modificaciones a los archivos se ignorarán en el futuro.
Para configurar esto por proyecto (lo que afectará a cualquiera que revise el proyecto), debe agregar la propiedad svn: ignore a los directorios del proyecto donde es probable que se almacenen los archivos. Por ejemplo, para excluir un directorio llamado build
desde el nivel superior de su proyecto, haría algo como esto:
svn propset svn:ignore 'build' .
svn commit -m 'project ignores build directory' .
A partir de ahora, subversion ignorará el directorio de compilación de su proyecto. Para obtener más información sobre esto, consulte la documentación en http://subversion.tigris.org/ o emita el svn help
comando para obtener más información.
___EDIT: Se agregaron más según el comentario. No sé cómo me perdí esa parte de la pregunta original. Perdón.
Desafortunadamente, eliminar los archivos que ahora desea ignorar del repositorio es un proceso manual, aunque, si sabe exactamente qué archivos son, puede escribir un pequeño script que las personas que tengan este problema puedan ejecutar (en el futuro, el svn: ignorar la propiedad evitaría que tengan que repetirla, y tiene la ventaja de poder modificarse fácilmente cuando surja la necesidad).
Para eliminar los archivos que no desea del repositorio, pero mantener los archivos locales, siga estos pasos:
- Cree su entrada global-ignores o agregue la propiedad svn: ignore a su repositorio y confirme.
- Para cada archivo que desee eliminar del repositorio, emita este comando:
svn rm --keep-local filename
- Una vez que haya emitido el
svn rm
comando para cada archivo, confirme su copia de trabajo.
Debido a que esto puede tener el efecto secundario de eliminar archivos de las copias de trabajo actuales de las personas si no han actualizado sus archivos de configuración, recomiendo usar la propiedad svn: ignore en los directorios del repositorio. De esa manera, cuando las personas actualicen, no se eliminarán inesperadamente los archivos porque no han modificado su global-ignores
parámetro todavía.
Pude hacer esto usando la herramienta TortoiseSVN. Proporcionan una opción de clic derecho en la GUI llamada: “Eliminar y agregar a la lista de ignorados”.
svn remove filename
Postergación:
svn propset svn:ignore filename|pattern
Ver también Cómo … Hacer que Subversion ignore archivos y carpetas .