Pregunta

Yo entiendo el concepto básico de una rama y se funden. Todas las explicaciones que he encontrado hablar de ramificación su tronco entero para crear un proyecto de sucursales y trabajar en ella y luego la fusión de nuevo. ¿Es posible en rama un subconjunto de un proyecto?

Creo que un ejemplo ayudará a explicar mejor lo que yo quiero hacer. Supongamos que tengo una aplicación con diez archivos file0 través file10. Todos los archivos son interdependientes y ser capaz de probar cualquier archivo de todos los demás deben ser incluidos en la compilación. Quiero trabajar en file0 pero no es necesario realizar cambios en fichero1 través file10. ¿Puedo ramificar file0 lo que los cambios comprometidos con file0 se actualizan algo así como myrepos / ramas / a-rama / file0 pero todos los otros archivos en mi copia de trabajo serán simplemente desde el tronco?

La razón por la que quiero hacer esto es que estoy trabajando en una gran aplicación J2EE con decenas de miles de archivos y parece que la ramificación toda la cosa va a tomar un tiempo muy largo. Además, yo estoy usando Eclipse con Subclipse (y puedo estar equivocado sobre esto), pero parece como si yo rama de un proyecto en Eclipse entonces voy a tener que establecer un nuevo proyecto Eclipse para apuntar a la rama. Por desgracia la importación de este proyecto en particular desde SVN a eclipsar tarda varias horas debido al tamaño de la aplicación. No es realista para que pase tanto tiempo.

supongo que yo pudiera tener los conceptos equivocados. Tal vez ramificación todo un proyecto no requiere una nueva copia de trabajo en absoluto?

Gracias por cualquier arrojan luz sobre esta cuestión.

¿Fue útil?

Solución

La ramificación de un entero (incluso) árbol muy grande en Subversion es un operación muy barato , lo que hace perezoso copia de archivos (O (1) tiempo).

Usted no necesariamente tiene que cambiar toda su copia de trabajo para trabajar en un solo archivo modificado. Puede usar SVN cambiar a cambiar un archivo o un directorio en su copia de trabajo a ser una versión desprotegido del archivo en la rama.

Otros consejos

En Subversion, haciendo una rama es simplemente hacer una copia de una jerarquía de directorios. Por lo tanto, se puede pasar un subconjunto, pero sólo si ese subconjunto puede ser definido por una jerarquía de directorios.

  

¿Puedo   file0 rama de modo que los cambios han comprometido a   file0 actualizará algo así como   myrepos / ramas / a-rama / file0 pero   todos los demás archivos en mi copia de trabajo   será simplemente desde el tronco?

Para responder a esta pregunta: No, no se puede ramificar un único archivo. Sin embargo, lo que creo que quiere hacer en su lugar es para hacer una rama y trabajar en file0 allí. A medida que se realizan cambios a trunk archivos, sólo tiene que fusionarlas en su sucursal en el que está trabajando en file0.

De esta manera, siempre tendrá la última información de trunk, que le permitirá probar los cambios file0 independientemente del tronco. A continuación, puede utilizar svn switch para mover su "lente archivo" entre el tronco y la rama (pero cuidado, Eclipse puede quejarse de tales chanchullos).

ramificación SVN se basa en el mecanismo de copia perezoso, por lo que puede expandirse de forma segura el proyecto de todos: que no tomaría mucho tiempo.

Como se mencionó en el la pregunta "¿Cómo hacer yo rama un archivo individual en el SVN? "que podría ramificarse un subconjunto, pero creo que esto sería peligrosa en el svn: propiedades merginfo mecanismo :. Así funciona mejor que la propiedad se establece a partir de la raíz del proyecto

ramificación en SVN es un (1) operación O. También, como SVN internamente emplea copia perezoso, solo se paga una multa espacio para lo que cambia.

Así que si no está seguro, por qué no seguir adelante y ramificar todo el proyecto?

(como se menciona quark, un problema con ramificaciones grandes proyectos es que, si obtiene varias ramas / el tronco en paralelo, esto podría tomar una gran cantidad de espacio en el disco local.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top