2010-01-21 12 views
10

Estoy usando subversion para alojar mi propio repositorio para una instalación de WordPress. Lo tengo configurado para que todos los archivos principales de WordPress estén en su propio directorio (llamado wordpress) y configurado para usar svn: externals para vincular al repositorio de WordPress. Luego tengo mi propia copia del directorio wp-content (ubicado fuera del directorio wordpress) que no usa svn: externals. Esta todo trabajando bien.Cómo hacer que SVN ignore un directorio dentro de una definición externa

Cuando actualizo mi repositorio, el núcleo de WordPress se actualiza. Como el repositorio de WordPress contiene su propio directorio de contenido wp, también actualiza ese directorio. Así que mi estructura de archivos termina buscando algo como esto:

/ 
--/wordpress/ (wordpress repo) 
-----/wp-admin/ 
-----/wp-content/ 
--/wp-content/ (my local repo) 

que terminan teniendo dos versiones separadas de la carpeta wp-content (uno de mi repo y uno de la cesión temporal de WordPress). No quiero el del repositorio de WordPress (o al menos no en ese lugar). ¿Hay alguna manera de configurar svn para ignorar el directorio wordpress/wp-content mientras se sigue utilizando la definición externa?

+0

No lo sé, pero supongo que podría intentar establecer una propiedad 'svn: ignorar' en el directorio raíz y ver qué sucede. Sin embargo, es probable que no funcione. –

+0

Eso no parece funcionar. Tan pronto como actualizo mi copia de trabajo voy y vuelvo a descargar los archivos de contenido wp. – NerdStarGamer

+0

Llego un poco tarde a esto, pero no creo que sea un problema tener el contenido de wp duplicado. Asumiendo que ha definido el 'WP_CONTENT_DIR' a algo como' define ('WP_CONTENT_DIR', dirname (__FILE__). '/ Wp-content'); 'entonces WordPress ignorará su propio directorio de contenido wp. – icc97

Respuesta

10

Lo que ’ re pidiendo realmente es, “ ¿Puede especificar --depth para svn:externals ” y la respuesta es no. Los externos actualmente son totalmente recursivos en el directorio especificado.

Issue 3216 solicita esta funcionalidad, pero ’ parece que ’ viene en el futuro cercano.

+0

Hmm, de acuerdo. Pensé que no podías hacer lo que quería, pero esperaba haberme perdido algo. Gracias. – NerdStarGamer

0

Usted puede hacer esto con sparse directories (también conocido como cajas poco profundas). No estoy 100% seguro de que funcione cuando uso externos, pero no veo por qué no funcionaría.

+1

No creo que los directorios dispersos sea lo que quiero. Quiero ser capaz de configurar mi svn repo para que siempre ignore este archivo en particular (dentro de la definición externa) y luego me olvide de él. No quiero tener que escribir cosas adicionales cada vez que hago cambios. – NerdStarGamer

2

Puede hacer elementos externos por separado para cada subcarpeta dentro del repositorio al que se hace referencia. Por lo tanto, si su externo está en un repositorio con los proyectos A, B y C y usted solo quiere A y B, entonces puede hacer dos referencias externas separadas a las subcarpetas para A y B individualmente.

Actualmente estoy haciendo esto con un proyecto pero puede tener problemas si realmente está editando los elementos externos y comprometiéndolos, ya que los cambios en dos elementos externos independientes no se pueden confirmar de forma atómica. Este problema existe incluso si los dos elementos externos apuntan al mismo repositorio que tiene sentido, pero es importante tener en cuenta al usar esta técnica.

Además, si usted es responsable del segundo repositorio, una opción es también incluir las pruebas, la documentación y otras carpetas relacionadas en otro repositorio adicional con fuentes externas al código fuente para separarlas del depósito de código principal. De esta forma, estas carpetas no se extraerán al hacer una referencia externa debido a dependencias de código.

-1

¿Qué ocurre si intenta eliminar el directorio local de wp-content, pero hágalo a través de SVN? es decir.

svn rm /wordpress/wp-content 

De esta manera SVN debe recordar sus cambios, y supongo que no está empujando cosas a la cesión temporal de Wordpress, por lo que no necesita preocuparse por cometer accidentalmente ella.

+1

esto no funciona. 'svn up' devolverá la carpeta eliminada – user1406062

Cuestiones relacionadas