2010-01-15 53 views
8

He estado trabajando con sucursales desde hace bastante tiempo, pero siempre utilicé herramientas de línea de comando para hacer la fusión real. Sin embargo, ahora necesito hacerlo solo desde Eclipse. Debido a que la ramificación y fusión es una característica ampliamente utilizada de los sistemas SCM durante muchos años, esperaba que Eclipse tuviera un buen soporte, pero simplemente no parece ser el caso.¿Cómo combinar grandes proyectos en Eclipse?

Actualmente estoy trabajando en un producto que se compone de varios proyectos que necesitan ser ramificados. Al fusionar los cambios de un tronco a una rama, normalmente ejecutaría lo siguiente desde la raíz del registro de las ramas: (Estoy usando Subversion como ejemplo aquí, pero los problemas deberían aplicarse también a otras herramientas SCM).

svn update 
svn merge ^/trunk 
svn commit -m "Merged from trunk" 

Quizás solucione algunos conflictos en el medio, pero eso es todo lo que tengo que hacer. Sin embargo, en Eclipse sólo puedo fusionar a nivel de proyecto, que tiene las siguientes desventajas:

  • no puedo combinar el contenido de la carpeta raíz, sólo el contenido de los proyectos individuales. Lo mismo ocurre con la actualización, por cierto.
  • Si la estructura del proyecto se modifica en el tronco (por ejemplo, se ha agregado un nuevo proyecto), esos cambios no se fusionan en absoluto. Lo mismo para la actualización, de nuevo.
  • La fusión no es atómica. Si se produce una confirmación en el enlace durante la fusión, las cosas pueden estropearse en mi copia de trabajo. (Esto puede solucionarse, pero no convenientemente.)

Estas limitaciones parecen bastante sencillas por el hecho de que Eclipse no conoce la carpeta raíz, ya que comprueba los proyectos individuales de SVN.

Mi pregunta es: ¿me estoy perdiendo algo, o es realmente imposible usar Eclipse de una manera similar a lo que haría desde la línea de comandos? Y si de hecho es imposible, ¿cómo pueden los demás lidiar con esto? ¿Todos usan herramientas externas como la línea de comandos o TortoiseSVN?

+1

cuales SVN plug-in está usando en Eclipse? –

+0

Actualmente estoy usando Subversive con SVNKit 1.3, pero no creo que estos problemas tengan algo que ver con el complemento o con SVN. ¿O hay un mejor soporte para, digamos, Mercurial, o tal vez CVS? –

Respuesta

3

Su observación es correcta. Eclipse administra operaciones de "equipo" como svn en el nivel de proyecto solamente. Entonces, no te falta nada ;-)

Sí, tienes que usar herramientas externas para fusionar sucursales enteras. Tortuga lo hace muy bien.

0

Lo que mencionas es una limitación. Normalmente comprobo toda la estructura de carpetas y luego importo los proyectos individuales en eclipse. Cuando necesito hacer una operación en todo el repositorio, lo hago fuera de eclipse usando la línea de comando o Tortoise SVN.

También es un dolor, que cuando alguien agrega un nuevo complemento (estoy desarrollando una aplicación Eclipse RCP), necesito agregarlo manualmente a la lista de proyectos ya que Eclipse no sabe acerca de la raíz de todo el proyectos.

0

En Eclipse, la bifurcación y fusión SVN funciona muy bien para proyectos individuales, no he tenido ningún problema al tratar con proyectos individuales que se han ramificado y deben fusionarse.

Sin embargo, si se deben tratar múltiples proyectos con una sola unidad, entonces no parece posible tratar directamente en eclipse, cada proyecto debería tratarse individualmente.

3

La fusión de multiproyectos se puede realizar con el complemento Eclipse CollabNet Subversion Merge Client. Puede encontrarlo en com.collabnet.subversion.fusionar.

activarlo en las preferencias:

Eclipse Preferences > Team > SVN > Diff/Merge 

y hay: Merge Implementation: CollabNet Desktop

Cuestiones relacionadas