tortoise subir que ignorar español desvincular carpeta borrar archivos archivo svn version-control directory folder

subir - tortoise svn server



¿Cómo ignoro un directorio con SVN? (23)

Quítalo primero ...

Si su directorio foo ya está bajo control de versiones, elimínelo primero con:

svn rm --keep-local foo

... entonces ignora:

svn propset svn:ignore foo .

Acabo de comenzar 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 Versions y TextMate en OS X y línea de comandos.


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

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

en la linea de comando


Aquí hay una estructura de directorio de ejemplo:

/project /source /cache /other

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

> svn st M source ? cache

Para establecer la propiedad ignorar, haga

svn propset svn: ignorar caché.

donde 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 del directorio de cache que necesita la propiedad.

Para comprobar 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 previamente establecidas:

svn propdel svn:ignore


Bash oneliner para múltiples ignorados:

svn propset svn:ignore ".project"$''/n''".settings"$''/n''".buildpath" "yourpath"


Como pasé un tiempo intentando que esto funcionara, debe tenerse en cuenta que si los archivos ya existen en SVN, debe svn delete y luego editar la propiedad svn:ignore .

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


Después de perder mucho tiempo buscando cómo hacer esta simple actividad, decidí publicar, no fue difícil encontrar una explicación decente.

Primero dejemos la estructura de la muestra.

$ svn st? proyecto / tronco / destino? proyecto / tronco / 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 podrá agregar sus archivos y subdirectorios en nuestro caso. Tipo "destino" guardar y cerrar el archivo y funciona

$ svn st? proyecto / tronco / myfile.x

Gracias.


El comando para ignorar entradas múltiples es un poco complicado y requiere barras invertidas.

svn propset svn:ignore "cache/ tmp/ null/ and_so_on" .

Este comando ignorará cualquier cosa llamada cache , tmp , null y and_so_on en el directorio actual.


Establezca la this svn: ignore. La mayoría de las herramientas de UI svn tienen una forma de hacerlo así como la discusión de la línea de comandos en el enlace.


Establezca la propiedad svn:ignore 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á su editor. Puede agregar múltiples patrones, uno por línea.

Puede ver el valor actual con:

$ svn pg svn:ignore .

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


Gracias por todas las contribuciones anteriores. Solo me gustaría compartir información adicional de mis experiencias al ignorar archivos.

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

Después de svn import y svn co los archivos, lo que normalmente hacemos por primera vez.

Todo el caché de tiempo de ejecución, carpetas de archivos adjuntos estarán bajo control de versión. por lo tanto, antes de svn ps svn: ignore , debemos eliminarlo del repositorio.

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

  1. svn exportar una copia limpia de sus carpetas (sin carpeta oculta .svn )
  2. svn del local y repositorio,
  3. svn ci
  4. Copia de nuevo las carpetas
  5. Haga svn st y confirme que las carpetas están marcadas como ''?''
  6. Ahora podemos hacer svn ps según las soluciones.

Cuando necesitamos que más de una carpeta sea ignorada

  • En un directorio tengo dos carpetas que deben configurarse como svn:ignore
  • Si configuramos uno, el otro será eliminado.
  • Entonces nos preguntamos que 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. Escribe todos los nombres de carpeta que quieras ignorar
  3. Pulsa la tecla ''esc'' para escapar del modo de edición
  4. Escribe ": wq" luego presiona Enter para guardar y salir

El archivo se ve algo así:

runtime cache attachments assets


Importante mencionar:

En la línea de comandos 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 desea que se agreguen todos los archivos. Por lo tanto, use esto en su lugar:

svn add --force .


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 esté siempre presente. Hago esto en una serie de carpetas "desechables".


Mira tus barras al final también. Encontré que incluir images/* en mi archivo de configuración ignorar no ignoró ./images/ . Cuando ejecuté svn status -u todavía se mostraba ? images ? images Por lo tanto, acabo de cambiar la configuración de ignorar a solo images , sin barras. Corrió un chequeo de estado y eso lo borró.


Para expandir un poco, si está haciendo esto con la herramienta de línea de comandos svn, desea escribir:

svn propedit svn:ignore path/to/dir

que abrirá el editor de texto que elija, luego escriba ''*'' para ignorar todo lo que contiene, y guarde + salga - esto incluirá el directorio en sí mismo en svn, pero ignorará todos los archivos que contiene, 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 ingrese la ruta apropiada.


Resuelto con Eclipse de la siguiente manera:

En primer lugar, haga una sincronización de su carpeta con el proyecto:

equipo -> sincronizar

En la siguiente vista, vista de equipo, puede ver todos los recursos que puede comprometer con el servidor SVN.

Entonces, seleccione la carpeta de recursos del recurso que desea ignorar, y luego puede ignorarlo usando

equipo -> añadir a svn:ignore .

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é

equipo-> añadir

Para svn:ignore y luego confirmaré la primera opción en la ventana de confirmación.


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


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 / adición.


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 "Cache".

Consulte this página en el manual de Subversion para obtener más información sobre las propiedades.


Tuve problemas para ignorar los directorios anidados; el directorio superior que quería ignorar no se mostraría con ''svn status'' pero sí lo hicieron todos los subdirectorios. Esto es probablemente evidente para todos los demás, pero pensé que lo compartiría:

EJEMPLO:

/el maletero

/ tronco / caché

/ trunk / cache / subdir1

/ trunk / cache / subdir2

cd /trunk svn ps svn:ignore . /cache cd /trunk/cache svn ps svn:ignore . * svn ci


Ya que estás usando versiones es realmente muy fácil:

  • Navega por tu copia retirada
  • Haga clic en el directorio para ignorar
  • En el cuadro "Omitir a la derecha, haga clic en Editar
  • Escriba *. * Para ignorar todos los archivos (o * .jpg solo para archivos jpg, etc.)

"Thank-you" svn por una manera tan horrible, falsa y difícil de ignorar archivos.

Así que escribí un script svn-ignore-all :

#!/bin/sh # svn-ignore-all # usage: # 1. run svn status to see what is going on at each step # 2. add or commit all files that you DO want to have in svn # 3. remove any random files that you don''t want to svn:ignore # 4. run this script to svn:ignore everything marked ''?'' in output of `svn status` svn status | grep ''^?'' | sed ''s/^? *//'' | while read f; do d=`dirname "$f"` b=`basename "$f"` ignore=`svn propget svn:ignore "$d"` if [ -n "$ignore" ]; then ignore="$ignore " fi ignore="$ignore$b" svn propset svn:ignore "$ignore" "$d" done

Además, para ignorar una lista específica de archivos / rutas de acceso, podemos usar esta variante svn-ignore . Supongo que svn-ignore-all debería ser como xargs svn-ignore.

#!/bin/sh # svn-ignore # usage: # svn-ignore file/to/ignore ... for f; do d=`dirname "$f"` b=`basename "$f"` ignore=`svn propget svn:ignore "$d"` if [ -n "$ignore" ]; then ignore="$ignore " fi ignore="$ignore$b" svn propset svn:ignore "$ignore" "$d" done

Una cosa más: tiendo a contaminar mis svn checkouts con muchos archivos aleatorios. Cuando es hora de confirmar, muevo esos archivos a un subdirectorio ''antiguo'', y le digo a svn que ignore ''antiguo''.


PARA MANTENER LOS DIRECTORIOS QUE SVN IGNORARÁ:

  1. esto eliminará los archivos del repositorio, pero mantendrá el directorio bajo el control de SVN:

svn delete - keep-local path / directory_to_keep / *

  1. luego configura para ignorar el directorio (y todo el contenido):

svn propset svn: ignorar "*" ruta / directory_to_keep


Establezca la propiedad svn:ignore del directorio padre:

svn propset svn:ignore dirname .

Si tiene varias cosas que ignorar, separe por 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:

svn propedit svn:ignore .