2012-03-27 19 views
5

Estamos utilizando Eclipse (con el plugin eGit) y quiero alojar un repositorio en una unidad de red compartida a la que varios usuarios tienen acceso de escritura.¿Es seguro para múltiples usuarios usar un repositorio de Git en una unidad de red compartida?

¿Todos los usuarios pueden apuntar al mismo repositorio original (en la unidad compartida) o sería mejor para cada usuario clonar el repositorio en su unidad local, trabajar fuera de esta versión local y enviar los cambios al original en red como ¿necesario?

Eclipse parece que le permite "importar" (a su área de trabajo Eclipse) un proyecto de un repositorio de Git, pero ese proyecto importado no parece ser supervisado por Git hasta que elige "Compartir proyecto". En este paso, el directorio de trabajo se convierte en el directorio de trabajo del repositorio para ese proyecto. Es de suponer que todos los usuarios que compartan este proyecto tendrían el mismo directorio de trabajo, es decir, el del repositorio en la unidad compartida.

No tengo claro las implicaciones de esto, pero no parece una buena idea, en la primera inspección! ¿Cómo manejará los problemas básicos, como 2 usuarios que intentan abrir el mismo archivo para editarlos simultáneamente, por ejemplo?

Gracias.

+0

Bueno, no necesitas git para esto. Simplemente use una unidad de red normal y deje que todos sus desarrolladores lean y escriban desde allí. No lo recomendaría, ya que terminarás teniendo muchos problemas, pero es posible. – Sgoettschkes

Respuesta

7

Es mejor que cada persona tenga su propio repositorio.

Clone su repositorio actual como un repositorio simple y colóquelo en la unidad de red.

p. Ej.

git clone --bare /path/to/current/cool_project cool_project.git 

Mueva el cool_project.git a su unidad de red y haga que todos los clonen. Los repos sin formato no tienen un directorio de trabajo, de ahí el nombre, por lo que es seguro presionarlos.

Consulte el capítulo 4 del libro de Git Pro - Git on a Server, y específicamente chapter 4.2 para obtener más información.

+0

Sí, tengo. Buen enlace. – Geeb

+0

Supongo que tendré que instalar msysgit para clonar un repositorio desnudo, ya que estoy obligado a usar Windows y el plugin eGit no parece ser compatible con esta característica. – Geeb

3

Por lo que suena, usted está hablando de que cada usuario apunta al repositorio git a través de la red y no tiene repositorios git individuales en las computadoras de cada desarrollador y luego empuja a un repositorio "central". Si estoy en lo cierto al leer su pregunta, esa no es una gran manera de aprovechar lo que git tiene para ofrecer. Git es un sistema de control de versiones distribuidas, por lo que todos deberían tener su propio repositorio y enviar los cambios a un repositorio central del que usted crea sus construcciones de CI.

+0

@PITaylor OK, ¿entonces recomendaría antes que nada a cada desarrollador clonar el repositorio de la unidad de red en su disco local, y luego trabajar en esta versión clonada? – Geeb

+2

No hay otra forma en que deba usar git. Compartir el mismo informe es un desastre que está por suceder. –

+0

Así es exactamente como deberías hacerlo. Github tiene algunos fantásticos tutoriales para comenzar en http://help.github.com/ que se aplican incluso si no está usando github. – PlTaylor

Cuestiones relacionadas