2010-09-06 9 views
6

He leído:Git/Mercurial localmente sábana de checkout local de

, y ni satisfacer mis necesidades.

En el trabajo, utilizamos un repositorio de CVS remoto. El acceso a este repositorio se maneja a través de herramientas eclipse CVS y plugins de eclipse internos que se crean en la parte superior de las herramientas del equipo para eclipse. Esto significa que no podemos pasar a un mejor vcs.

Sin embargo, me gustaría usar Git en mi máquina local (para permitir la ramificación personal) de tal manera que puedo lograr lo siguiente:

Crear sucursales en Git y luego una vez terminada y se fusionó de nuevo en mi baúl locales, comprometerse de nuevo a los cvs repo usando las herramientas del equipo Eclipse etc.

Mi plan es algo a lo largo de las siguientes líneas:

  • Copie los archivos extraídos a otra carpeta [gitRepo].
  • Crear un repositorio maestro de git en gitRepo
  • Succionar en gitRepo y hacer cambios.
  • Commit a gitRepo
  • Copia gitRepo de nuevo a archivos extraídos
  • sincronización con cvs remotas.

Estaba planeando utilizar eGit para eclipse, sin embargo, creo que los archivos CVS y .git competirán por la propiedad del control de versiones.

¿Hay alguna herramienta o flujo de trabajo sugerido para ayudarme a manejar esto? También qué tan bien juega Git con los archivos CVS. Y viceversa, ya que no quiero que se infecten entre sí.

La razón por la cual los enlaces anteriores no sirven de nada es que se comprometen directamente con el repositorio cvs del repositorio git y esto me preocupa ya que no deseo infectar el repositorio cvs por accidente.

También se debe decir que los cambios en el GitRepo no necesitan persistir en el repositorio de CVS, por ejemplo, no necesito ver cada inserción del repositorio de git reflejado en el CVS remoto.

~ Gracias por leer.

Respuesta

4

Es perfectamente posible crear un repositorio git directamente dentro de un espacio de trabajo de CVS (al igual que directly within any other VCS tool.

Asegúrese de git ignorará cualquier .cvs recursos, y asegúrese de CVS ignorará la .git.
Cualquier Git cometer won' t se reflejará directamente en el CVS.

el único truco es para Eclipse para visualizar solamente Git o únicamente CVS informaciones y etiqueta de la decoración.
para que se configure dos perspectivas Eclipse diferentes en las que voy a desactivar uno o el otra herramienta VCS.

+0

Gracias por la edición de mi pregunta VonC, lo aprecio! Cuando dices perspectiva de Eclipse, ¿te refieres a un espacio de trabajo? ¿Cómo se puede desactivar el etiquetado de un vcs desde una perspectiva? –

+0

@Darkflace: puede personalizar una perspectiva, especialmente la "Disponibilidad del grupo de comandos" – VonC

3

he hecho exactamente esto en el trabajo y me encontré con las siguientes prácticas útiles:

  1. Mantenga cualquiera (master en mi caso) rama siempre sincronizado con CVS. No use esta rama para su desarrollo. Actualice periódicamente esta rama para obtener los cambios realizados por el resto del equipo. Si estos cambios son relevantes para su trabajo actual, haga un merge master desde su rama dev (o cualquier otra apropiada).

  2. Cuando esté listo para registrarse en el interruptor de CVS a la rama master y fusionar los cambios de la rama apropiada (dev, feature etc., según corresponda). ¡Ejecuta tus pruebas!

  3. Es muy probable que su empleador mantenga una copia de seguridad de los repos de CVS. Tendrás que encontrar la manera de mantener tu git repo respaldado. Una forma es agregar un repositorio espejo en una carpeta de Dropbox y usar un gancho post-commit para actualizarlo después de cada confirmación.

  4. Antes de salir del trabajo, cambie a la rama master. Una vez cometí el error de ejecutar CVS up -d en una sucursal dev en la mañana y terminé bastante confundido. Agregar una secuencia de comandos para cambiar automáticamente a master antes de actualizar ayuda.

Cuestiones relacionadas