2012-04-04 41 views
9

Estoy tratando de racionalizar dos perspectivas que parecen estar relacionadas (o al menos proporcionan una funcionalidad muy similar): La perspectiva 'Git Repository' (que obtuve después de agregar EGit), y la perspectiva de 'Sincronización de equipo' (que creo que era parte de la distribución de EE).Eclipse 'Git Repository' perspectiva vs 'Team Synchronizing'

Por lo que yo puedo decir, yo era capaz de obtener el repositorio Git de trabajo (con GitHub), o al menos la mayor parte de las características: El 'estadificación Git' ventana está trabajando muy bien, soy capaz de se compromete arrastrando los archivos de 'Cambios sin escena' a 'Cambios por etapas' y luego haciendo clic en el ícono Commit. Luego puedo enviar mis cambios desde la ventana 'Repositorios Git', haciendo clic derecho en el espacio de trabajo-> Remotos-> origen-> url, y seleccionando Push from menu (¿ese es el procedimiento 'correcto'?).

Con la perspectiva de 'Sincronización de equipo', no tengo suerte de configurarlo. Una vez que seleccioné 'Sincronizar ...' desde el menú, el Git, entonces veo una tabla (¿qué es?). Estoy probando varios valores para el Destino (de lo contrario, no puedo presionar el botón Finalizar), pero no importa lo que haga, me dice 'no hay cambios' para todos mis proyectos.

También hay muchos elementos del menú contextual al hacer clic derecho en un proyecto y seleccionar 'Equipo'. ¿Que son estos?

Respuesta

4

En CVS, Team Synchronize es la única manera sensata de administrar sus cambios entrantes y salientes. Puede actualizar/fusionar los cambios entrantes y comprometer los cambios salientes desde esta vista. Dado que cada confirmación es discreta y no es atómica, la vista está bien para este flujo de trabajo.

En EGit sin embargo, ya tiene acciones explícitas para agregar, confirmar, empujar, tirar y fusionar. Entonces, la sincronización del equipo está fuera del flujo de trabajo normal. Se comporta como una sincronización gloriosa de un parche: eliges qué rama (s) deseas comparar con tu directorio de trabajo y te muestran las diferencias. A continuación, puede aplicar esos cambios en masa o individualmente, pero no va a retomar el contexto, es decir, no va a crear puntos de fusión o lo que sea.

Así que debe entrenarse a sí mismo para no utilizar, excepto por razones excepcionales. Por ejemplo, tal vez tenga dos sucursales A & B. Alguien ha realizado un cambio a B y solo necesita una pequeña parte, por lo que podría usar Team Sync para mostrar los diffs y solo aplicar los que necesita. O tal vez solo quieres aplastar todos los cambios en la rama B y llamarlos a una única confirmación en A. Entonces podrías usar Team Sync en lugar de jugar con una rebase cuando de todos modos lanzarás B o es una rama remota .

3

Desde mi punto de vista, la perspectiva del "repositorio Git" está destinada a enviar archivos desde el directorio de trabajo al repositorio Git local, mientras que la perspectiva "Sincronización de equipo" es para sincronizar su repositorio local con uno remoto.

También me pareció confuso al principio, porque al usar SVN, la perspectiva de "Sincronización de equipo" era para confirmar/actualizar archivos. Hasta que noté que en la perspectiva de sincronización del equipo de EGit, en lugar de mostrar los botones de confirmación/actualización, tiene los botones de extracción/pulsación, que son para sincronizar dos repositorios de Git.

Para las diversas opciones que aparecen en el menú contextual "Equipo", corresponden a un grupo de operaciones de Git. Sugiero leer algo sobre el principio de funcionamiento de Git antes de usar EGit. http://git-scm.com/doc sería un buen comienzo.

Cuestiones relacionadas