2012-07-24 8 views
8

La empresa para la que trabajo me dio el proyecto de trasladar su proyecto Java de CVS a Git. Por varias razones, no quieren usar otra herramienta que no sea Eclipse. Así que estamos atrapados con EGit.EGit: ¿Cómo prevenir la fusión de avance rápido?

Busqué mucho para encontrar un flujo de trabajo adaptado a nuestro proyecto. Este parecía bastante relevante y utilizado por muchas personas: http://nvie.com/posts/a-successful-git-branching-model/

El problema es que cuando tratamos de ver cómo podía funcionar con EGit usando commits, se fusionan las ramificaciones &, se produjo una gran cantidad de avance rápido. El problema con las fusiones de avance rápido es que hace que pierda el punto de partida de la bifurcación.

El cliente para el que trabajamos desea poder elegir qué funciones estarán disponibles en la próxima versión y cuáles no. Esa es una de las razones principales por las que queremos pasar de CVS a Git, porque no parecía haber una manera fácil en CVS para encontrar qué archivos se modificaron debido a la función n. ° 1 y qué archivos se modificaron para la función n. ° 2. En git, podemos crear sucursales para la función # 1 & # 2 y encontrar qué archivos se modificaron para estas características. Pero, debido al avance rápido, es como volver a CVS, no podemos saber cuál es la función n. ° 1 y cuál es la función n. ° 2.

Entonces, ¿hay alguna manera de evitar una unión rápida? Hemos tratado de poner estas configuraciones en Eclipse:

[core] 
mergeoptions = --no-ff 

[merge] 
ff = false 

Pero no impidió EGit de hacer fusión avance rápido. Si esta característica no se implementa con JGit/EGit, ¿habría alguna otra manera de tener un flujo de trabajo usando Egit que siga lo que el cliente desea (posibilidad de elegir características para el lanzamiento). Usar la línea de comando probablemente resolvería el problema, pero si es posible mantenerlo en Eclipse, estaría bien.

Gracias

Respuesta

1

Parece que no es posible, ya que JGit no admite algunas Opciones de combinación, incluyendo --no-ff.

Ver this post, hay un informe de error al respecto.

7

EGit bug 336933 fue sobre el soporte de estas opciones, y se solucionó con EGit 2.3, vea release notes.

Si usted no usa 2.3, sin embargo, un (feo) solución podría tener este aspecto:

  • Antes de la fusión, compruebe si se traduciría en una combinación de avance rápido usando la Historia Ver
  • Si sería, hacer un compromiso en el maestro (o la rama en la que desea combinar en) en un archivo relacionado
  • Luego hacer la fusión
2

Tenga en cuenta que con el release of Egit 2.3, Egit ahora es compatible con esa opción:

Soporte git merge --no-ff como una preferencia EGit.

Eso completa bug 335091.

Cuestiones relacionadas