Pregunta ¿Cómo ignoro un directorio con SVN?


Empecé a usar SVN, y tengo un directorio de caché que no necesito bajo el control de código fuente. ¿Cómo puedo ignorar todo el directorio / carpeta con SVN?

estoy usando Versiones y TextMate en OS X y línea de comandos.


723
2017-09-22 16:55


origen


Respuestas:


Selecciona el svn:ignore propiedad del directorio principal:

svn propset svn:ignore dirname .

Si tiene varias cosas que ignorar, sepárelas por nuevas líneas en el valor de la propiedad. En ese caso, es más fácil editar el valor de la propiedad usando un editor externo:

svn propedit svn:ignore .

764
2017-09-22 16:56



Aquí hay una estructura de directorio de ejemplo:

\project
    \source
    \cache
    \other

Cuando en project verá que su directorio de caché no se agrega y se muestra como tal.

> svn st
M  source
?  cache

Para establecer la propiedad de ignorar, haz

svn propset svn: ignorar el caché.

dónde svn:ignore es el nombre de la propiedad que está configurando, cache es el valor de la propiedad, y . es el directorio en el que está configurando esta propiedad. Debe ser el directorio principal de la cache directorio que necesita la propiedad.

Para verificar qué propiedades están establecidas:

> svn proplist
Properties on '.':
  svn:ignore

Para ver el valor de svn:ignore:

> svn propget svn:ignore
cache

Para eliminar propiedades establecidas previamente:

svn propdel svn:ignore

394
2017-09-22 17:06



Importante mencionar:

En la línea de comando no puedes usar

svn add *

Esto también agregará los archivos ignorados, porque la línea de comandos se expande * y por lo tanto svn add cree que quiere que se agreguen todos los archivos. Por lo tanto, use esto en su lugar:

svn add --force .

128
2018-05-07 23:38



Dado que pasé un tiempo tratando de hacer que esto funcione, debe tenerse en cuenta que si los archivos ya existen en SVN, necesita svn delete ellos, y luego edita el svn:ignore propiedad.

Sé que parece obvio, pero siguieron apareciendo como ? en mi svn status lista, cuando pensé que simplemente los ignoraría localmente.


78
2017-10-30 15:02



Para ampliar ligeramente, si está haciendo esto con la herramienta de línea de comandos svn, quiere escribir:

svn propedit svn:ignore path/to/dir

que abrirá tu editor de texto de elección, luego escribe '*' para ignorar todo lo que hay dentro y guarda + salir - esto incluirá el directorio en svn, pero ignora todos los archivos dentro de él, para ignorar el directorio, usa el ruta de acceso del padre, y luego escriba el nombre del directorio en el archivo. Después de guardar, ejecute una actualización ('svn up'), y luego marque la ruta apropiada.


67
2017-09-22 17:00



Selecciona el svn:ignore propiedad en el directorio principal:

$ cd parentdir
$ svn ps svn:ignore . 'cachedir'

Esto sobrescribirá cualquier valor actual de svn:ignore. Usted edita el valor con:

$ svn pe svn:ignore .

Que abrirá tu editor. Puede agregar varios patrones, uno por línea.

Puede ver el valor actual con:

$ svn pg svn:ignore .

Si está utilizando una GUI, debe haber una opción de menú para hacer esto.


28
2017-09-22 17:02



Gracias por todas las contribuciones anteriores. Me gustaría compartir información adicional de mis experiencias sin tener en cuenta los archivos.


Cuando las carpetas ya están bajo control de revisión

Después svn import y svn co los archivos, lo que solemos hacer por primera vez.

Todo el caché de tiempo de ejecución, las carpetas de archivos adjuntos estarán bajo control de versión. entonces, antes svn ps svn: ignorar, tenemos que eliminarlo del repositorio.

Con SVN versión 1.5 anterior, podemos usar svn del --keep-local your_folder, pero para una versión anterior, mi solución es:

  1. svn export una copia limpia de sus carpetas (sin .svn carpeta oculta)
  2. svn del el local y el repositorio,
  3. svn ci
  4. Copia las carpetas
  5. Hacer svn st y confirmar que las carpetas están marcadas como '?'
  6. Ahora podemos hacer svn ps de acuerdo a las soluciones

Cuando necesitamos que se ignore más de una carpeta

  • En un directorio, tengo dos carpetas que deben establecerse como svn:ignore
  • Si establecemos uno, el otro será eliminado.
  • Entonces nos preguntamos si necesitamos svn pe

svn pe necesitará editar el archivo de texto, y puede usar este comando si es necesario para configurar su editor de texto usando vi:

export SVN_EDITOR=vi
  1. Con "o" puedes abrir una nueva línea
  2. Escriba todos los nombres de carpeta que desea ignorar
  3. Presiona la tecla 'esc' para escapar del modo de edición
  4. Escriba ": wq" y luego presione Entrar para guardar y salir

El archivo se ve algo así como esto:

runtime
cache
attachments
assets

20
2017-09-13 03:26



Eliminarlo primero ...

Si tu directorio foo ya está bajo control de versión, quítelo primero con:

svn rm --keep-local foo

... luego ignora:

svn propset svn:ignore foo .

18
2018-06-27 15:16



... y si desea ignorar más de un directorio (por ejemplo build/  temp/ y *.tmp archivos), puede hacerlo en dos pasos (ignorando el primero y editando las propiedades de ignorar (vea otras respuestas aquí) o podría escribir algo como

svn propset svn:ignore "build
temp
*.tmp" .

en la línea de comando.


12
2017-11-17 10:25



Si está utilizando el cliente SVN en particular TortoiseSVN, luego al confirmar, tiene la opción de hacer clic derecho en los elementos y seleccionar "Agregar para ignorar la lista".


11
2017-09-22 17:01