2008-10-29 14 views
20

Estoy usando tortuga svn en Windows.¿Cómo puedo bifurcar en SVN y hacer que bifurque mi svn: carpetas externas también?

¿Cómo puedo ramificarme en SVN y hacer que se bifurque mi svn: carpetas externas también?

+1

Aquí está una publicación de blog que habla de este problema y de posibles soluciones alternativas ... http://thinkinging.com/2008/10/21/set-the-revision-of-your-svnexternals-or-else/ –

+0

Aquí es una utilidad de línea de comandos de Windows que congela los elementos externos para la ramificación/etiquetado: http://svnxf.codeplex.com/ –

Respuesta

22

Debe usar svn:externals como externo referencias de diferentes repositorios. Así svn:externals debe hacer referencia a los componentes, módulos, 3 ª Parte herramientas, etc.

Debe nosvn:externals uso para emular un -behaviour "enlace simbólico" mediante el uso externo para apuntar en el mismo repositorio. Puede resolver estos problemas la mayor parte del tiempo modificando su estructura de construcción, o usando los scripts de salida y la característica de salida dispersa.

svn: externos tienen una gran cantidad de problemas de la mayoría de ellos son difíciles de ver, seguir y reparación: see an example here

  • compromete no puede abarcar más de lo externo (no hay confirmación se atómicos)
  • ramas serán no ramificar su externos (como usted ha señalado)
  • etiquetas no va a "congelar" sus cosas externas por lo que este último se basa puede generar distintos/rota construye
  • fusión y fusión reeintegrate no funcionará en lo externo

Si usa Externals para apuntar a otros repositorios, la mayor parte del tiempo no tendrá estos problemas.

+0

El problema es que hay escenarios en los que realmente necesita elementos externos para el mismo repositorio, especialmente cuando el sistema necesita componentes dinámicamente y una herramienta de compilación sería una exageración. He corrido más de un par de veces en este tipo de escenarios para proyectos de mayor tamaño. – haknick

+0

Una solución que probablemente vale la pena analizar es la configuración de GIT-SVN. Y luego tal vez usando git para la parte de clonación y aún mantener SVN Externals. – haknick

3

Cuando crea una rama dentro de Subversion, simplemente está creando una copia barata del tronco, rama o etiqueta de la que está ramificando. Esta copia barata contendrá todos los mismos archivos y propiedades que el tronco, rama o etiqueta desde la que se ramificó hasta que comience a modificar las propiedades o archivos de la nueva rama.

Sin embargo, es posible que pueda modificar uno de los enganches 'commit' para modificar la configuración automáticamente una vez que haya confirmado su bifurcación. http://svnbook.red-bean.com/en/1.1/ch05s02.html

De lo contrario, si desea que sus elementos externos se modifiquen en la rama, tendrá que hacerlo manualmente.

+4

La modificación de una transacción svn-commit a través de scripts hook no es aconsejable y no es compatible con la comunidad svn. ¡Esto resultará en desincronizaciones graves de la copia de trabajo! –

10

Deberá crear manualmente una rama en su repositorio externo y luego cambiar su svn: propiedad externa para que apunte a la rama correcta.

+0

esto no es factible para mí porque tengo un montón de svn: externos en mi proyecto –

+3

Factible o no, esta es la única solución. Se ha solicitado que se convierta en una característica automática de SVN, pero el problema sigue abierto, y bastante antiguo ... http://subversion.tigris.org/issues/show_bug.cgi?id=1258 –

2

hay externalidades relativas ahora. aunque deberías saber :) estoy usándolos ahora mismo - en el medio de resolver algunos problemas que tuve, pero estoy progresando. acabo de etiquetar un proyecto después de crear elementos externos relativos dentro de él. por ahora es extraño - cuando reviso la rama, me notifica que los externos son de la revisión "top revision of the trunk", pero los externos son los originales, que es lo que quiero :)

+0

FYI, estoy teniendo problemas con mis aspectos externos relativos. http://subversion.tigris.org/issues/show_bug.cgi?id=4150 http://stackoverflow.com/questions/439666/svnswitch-doesnt-work-with-relative-svnexternal/12062304#12062304 – AnneTheAgile

Cuestiones relacionadas