Acabo de comenzar a usar SVN, y tengo un directorio de caché que no necesito bajo control de fuente. ¿Cómo puedo ignorar todo el directorio / carpeta con SVN?
Estoy usando Versions y TextMate en OS X y línea de comandos.
svn
version-control
directory
Gilean
fuente
fuente
Respuestas:
Establezca la
svn:ignore
propiedad del directorio principal:Si tiene que ignorar varias cosas, sepárelas con nuevas líneas en el valor de la propiedad. En ese caso, es más fácil editar el valor de la propiedad utilizando un editor externo:
fuente
svn rm --keep-local dirname
primero. (Mi producción de estadísticas de svn fue enorme y me topé con esto por un tiempo).svn propset svn:ignore -F file.txt .
svn:ignore
y nosvn::ignore
como yo lo hice. Puede establecer propiedades arbitrarias, por lo que esta última se establecerá en Aceptar, y podrá ver y editar la propiedad, pero no hará que SVN ignore los archivos que enumera.Aquí hay una estructura de directorio de ejemplo:
Cuando
project
vea que su directorio de caché no se agrega y aparece como tal.Para establecer la propiedad ignorar, haga
donde
svn:ignore
está el nombre de la propiedad que está configurando,cache
el valor de la propiedad y.
el directorio en el que está configurando esta propiedad. Debe ser el directorio principal delcache
directorio que necesita la propiedad.Para verificar qué propiedades están configuradas:
Para ver el valor de
svn:ignore
:Para eliminar propiedades establecidas previamente:
fuente
dirname
. Por ejemplo, al escribirsvn propset svn:ignore dirname
, si permite que el shell (bash) complete el nombre del directorio por usted, agregará esa barra diagonal final, dejándolo con el comandosvn propset svn:ignore dirname/
, que no da como resultado que se ignore la carpeta. Al menos esa fue mi experiencia.Importante mencionar:
En la línea de comando no puedes usar
Esto también agregará los archivos ignorados, porque la línea de comando se expande
*
y, por lo tanto,svn add
cree que desea que se agreguen todos los archivos. Por lo tanto, use esto en su lugar:fuente
svn add --force *
NO funcionará. Usa el punto, no la estrella.Como pasé un tiempo tratando de hacer que esto funcione, debe tenerse en cuenta que si los archivos ya existen en SVN, los necesita
svn delete
y luego edita lasvn:ignore
propiedad.Sé que parece obvio, pero siguieron apareciendo como
?
en misvn status
lista, cuando pensé que simplemente los ignoraría localmente.fuente
Para expandir ligeramente, si está haciendo esto con la herramienta de línea de comandos svn, desea escribir:
que abrirá el editor de texto de su elección, luego escriba '*' para ignorar todo lo que contiene y guardar + salir: esto incluirá el directorio en sí en svn, pero ignorará todos los archivos que contiene, para ignorar el directorio, use el ruta del padre y luego escriba el nombre del directorio en el archivo. Después de guardar, ejecute una actualización ('svn up') y luego verifique la ruta correspondiente.
fuente
Establezca la
svn:ignore
propiedad en el directorio principal:Esto sobrescribirá cualquier valor actual de
svn:ignore
. Puede editar el valor con:Lo cual abrirá tu editor. Puede agregar múltiples patrones, uno por línea.
Puede ver el valor actual con:
Si está utilizando una GUI, debe haber una opción de menú para hacerlo.
fuente
svn ps svn:ignore . 'cachedir'
resultados encachedir is not under version control
. cambiando asvn ps svn:ignore 'cachedir' .
trabajado para míGracias por todas las contribuciones anteriores. Solo me gustaría compartir información adicional de mis experiencias al ignorar los archivos.
Cuando las carpetas ya están bajo control de revisión
Después de 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 de svn ps svn: ignore , necesitamos 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:.svn
carpeta oculta)Cuando necesitamos que se ignore más de una carpeta
svn:ignore
svn pe
necesitará editar el archivo de texto, y puede usar este comando si es necesario para configurar su editor de texto usando vi :El archivo se ve simplemente así:
fuente
svn propset svn:ignore -F .ignorethesefiles .
, que usará el contenido del archivo. Me gusta mantenerlo cerca para que sepas lo que se ignora. Las ediciones requieren un conjunto de accesorios de seguimiento.Eliminarlo primero ...
Si su directorio
foo
ya está bajo control de versiones, elimínelo primero con:... luego ignora:
fuente
... y si desea ignorar más de un directorio (digamos
build/
temp/
y*.tmp
archivos), puede hacerlo en dos pasos (ignorando las propiedades de ignorar primero y editar (vea otras respuestas aquí) o puede escribir algo comoen la línea de comando.
fuente
Si está utilizando el cliente SVN particular TortoiseSVN , luego de confirmar, tiene la opción de hacer clic derecho en los elementos y seleccionar "Agregar a la lista de ignorados".
fuente
El comando para ignorar múltiples entradas es un poco complicado y requiere barras diagonales inversas.
Este comando ignorar todo lo nombrado
cache
,tmp
,null
, yand_so_on
en el directorio actual.fuente
svn propset svn:ignore -F .ignorethesefiles .
le permitirá usar un archivo. Y como se mencionó, siempre has sido propendido.Tuve problemas para ignorar los directorios anidados; el directorio superior que quería ignorar no se mostraba con 'svn status' pero todos los subdirectos sí. Probablemente esto sea evidente para todos los demás, pero pensé en compartirlo:
EJEMPLO:
fuente
"Gracias" svn por una forma tan horrible, falsa y difícil de ignorar los archivos.
Entonces escribí un script svn-ignore-all :
Además, para ignorar la lista específica de archivos / nombres de ruta, podemos usar esta variante svn-ignore . Supongo que svn-ignore-all debería ser realmente como xargs svn-ignore.
Una cosa más: tiendo a contaminar mis pagos de svn con muchos archivos aleatorios. Cuando es hora de comprometerse, muevo esos archivos a un subdirectorio 'viejo' y le digo a svn que ignore 'viejo'.
fuente
Bash oneliner para ignoraciones múltiples:
fuente
Si su directorio de proyecto se llama / Project, y su directorio de caché se llama / Project / Cache, entonces necesita establecer una propiedad de subversión en / Project. El nombre de la propiedad debe ser "svn: ignore" y el valor de la propiedad debe ser "Caché".
Consulte esta página en el manual de Subversion para obtener más información sobre las propiedades.
fuente
La respuesta de Jason hará el truco. Sin embargo, en lugar de establecer svn: ignore a "." en el directorio de caché, es posible que desee incluir "caché" en la propiedad svn: ignore del directorio principal , en caso de que el directorio de caché no siempre esté presente. Hago esto en varias carpetas "desechables".
fuente
PARA MANTENER LOS DIRECTORIOS QUE SVN IGNORARÁ:
fuente
Si está utilizando una interfaz para SVN como TortoiseSVN, o algún tipo de integración IDE, también debería haber una opción de ignorar en el mismo menú que la operación de confirmación / agregar.
fuente
Establezca la propiedad svn: ignore . La mayoría de las herramientas de interfaz de usuario tienen una manera de hacer esto, así como la discusión de la línea de comando en el enlace.
fuente
Como estás usando versiones, en realidad es muy fácil:
fuente
Observe sus barras diagonales también. Descubrí que incluir
images/*
en mi archivo de configuración de ignorar no ignoraba./images/
. Cuando corrísvn status -u
, todavía se notaba? images
. Entonces, simplemente cambié la configuración de ignorar a soloimages
, sin barras. Realicé una verificación de estado y eso lo borró.fuente
Resuelto con Eclipse de la siguiente manera:
En primer lugar, sincronice su carpeta con el proyecto:
En la siguiente vista, vista de equipo, puede ver todos los recursos que puede asignar al servidor SVN.
Por lo tanto, seleccione la carpeta de recursos del recurso que desea ignorar, y luego puede ignorarlo usando
Después de eso, en la ventana de confirmación, seleccione la primera opción: "ignorar por nombre".
Por ejemplo, si quiero ignorar la carpeta de destino y sus recursos .class, sincronizaré y, en la vista de sincronización, seleccionaré la carpeta de destino. Después de eso, seleccionaré
ay
svn:ignore
luego confirmaré la primera opción en la ventana de confirmación.fuente
Después de perder mucho tiempo buscando cómo hacer esta simple actividad, decidí publicar que no fue difícil encontrar una explicación decente.
Primero deje que la estructura de la muestra
$ svn st? proyecto / tronco / objetivo? proyecto / trunk / myfile.x
1 - primero configure el editor, en mycase vim export SVN_EDITOR = vim
2 - "svn propedit svn: ignore project / trunk /" abrirá un nuevo archivo y puede agregar sus archivos y subdirectorio en nuestro caso, escriba "target" guardar y cerrar el archivo y funciona
$ svn st? proyecto / trunk / myfile.x
Gracias.
fuente