2012-03-27 11 views
5

Wir verwenden Eclipse (mit dem eGit-Plugin) und ich möchte ein Repo auf einem freigegebenen Netzlaufwerk hosten, auf das mehrere Benutzer Schreibzugriff haben.Ist es für mehrere Benutzer sicher, ein Git Repo auf einem freigegebenen Netzlaufwerk zu verwenden?

Können alle Benutzer auf dasselbe ursprüngliche Repo verweisen (auf dem freigegebenen Laufwerk) oder wäre es für jeden Benutzer besser, das Repo auf das lokale Laufwerk zu klonen, von dieser lokalen Version abzuarbeiten und Änderungen am Netzwerkoriginal vorzunehmen erforderlich?

Eclipse scheint Ihnen zu ermöglichen, ein Projekt aus einem Git Repo in Ihr Eclipse-Projekt zu "importieren", aber dieses importierte Projekt wird anscheinend nicht von Git überwacht, bis Sie "Projekt freigeben" auswählen. In diesem Schritt wird das Arbeitsverzeichnis das Arbeitsverzeichnis des Repos für dieses Projekt. Vermutlich haben alle Benutzer, die dieses Projekt gemeinsam nutzen, das gleiche Arbeitsverzeichnis, nämlich das des Repos auf dem freigegebenen Laufwerk.

Ich bin nicht klar über die Auswirkungen davon, aber es scheint nicht eine gute Idee, bei der ersten Inspektion! Wie geht es mit grundlegenden Problemen wie 2 Benutzern um, die versuchen, dieselbe Datei zum Beispiel gleichzeitig zu bearbeiten?

Danke.

+0

Nun, Sie brauchen Git nicht dafür. Verwenden Sie einfach ein normales Netzlaufwerk und lassen Sie alle Ihre Entwickler von dort lesen und schreiben. Ich würde es nicht empfehlen, da Sie viele Probleme haben werden, aber es ist möglich. – Sgoettschkes

Antwort

7

Es ist besser, dass jede Person ihr eigenes Repo hat.

Klonen Sie Ihr aktuelles Repository als reines Repo und legen Sie es auf das Netzlaufwerk.

z.B.

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

Verschieben Sie die cool_project.git auf Ihr Netzwerklaufwerk, und alle davon klonen zu klonen. Bare-Repos haben kein Arbeitsverzeichnis, daher der Name, auf den sie sicher zugreifen können.

Siehe Kapitel 4 des Git Pro Buchs - Git on a Server und speziell chapter 4.2 für weitere Details.

+0

Ja, Gotcha. Gute Verbindung. – Geeb

+0

Ich denke, ich muss msysgit installieren, um einen leeren Repo zu klonen, da ich gezwungen bin, Fenster zu benutzen und das eGit Plugin scheint diese Funktion nicht zu unterstützen. – Geeb

3

Sie sprechen davon, dass jeder Benutzer über das Netzwerk auf das Git-Repository verweist und keine einzelnen Git-Repositories auf den Computern jedes Entwicklers hat und dann zu einem "zentralen" Repository wechselt. Wenn ich Ihre Frage richtig gelesen habe, ist das keine gute Möglichkeit, das zu nutzen, was ein Git zu bieten hat. Git ist ein verteiltes Versionskontrollsystem, also sollte jeder sein eigenes Repository haben und die Änderungen an ein zentrales Repository weitergeben, von dem Sie Ihre CI erstellen.

+0

@PITaylor OK, also würden Sie jedem Entwickler empfehlen, zuerst den Repo vom Netzlaufwerk auf sein lokales Laufwerk zu klonen und dann diese geklonte Version zu bearbeiten? – Geeb

+2

Es gibt keinen anderen Weg, du solltest git benutzen. Das gleiche Repo zu teilen ist eine Katastrophe, die darauf wartet, zu passieren. –

+0

Genau so sollten Sie es tun. Github hat einige fantastische Einstiegsanleitungen unter http://help.github.com/, die auch dann gelten, wenn Sie nicht github verwenden. – PlTaylor