2008-08-07 6 views
12

Wir haben zwei Entwickler auf dem gleichen geschlossenen Netzwerk, ein weiterer Entwickler ein paar Minuten die Straße hinunter und ein vierter Entwickler auf halbem Weg durch das Land. E-Mail-, FTP- und Entfernungsmedien sind alle mögliche Übertragungsmethoden für Personen, die sich nicht im selben Netzwerk befinden.Was ist ein gutes Mercurial-Nutzungsmuster für dieses Setup?

Ich bin einer der beiden geschlossenen Netzwerkentwickler, betrachte uns als "Master" Standort.

Was ist das beste Mercurial Setup/Muster für die Gruppe? Was ist der beste Weg, Änderungen an die Remote-Entwickler zu übertragen? Als ich verantwortlich war, dachte ich, dass ich mindestens ein Master-Repo mit einem anderen lokalen Repo halten müsste, in dem ich mich weiterentwickeln kann. Jede andere Person sollte nur einen Klon des Meisters brauchen. Ist das richtig? Ich denke, das macht mich auch verantwortlich für die Verschmelzung?

Wie Sie sehen können, versuche ich immer noch, um verteilte Versionskontrolle einzuwickeln. Ich glaube nicht, dass es einen anderen Weg gibt, dies mit der Konnektivitätssituation zu tun.

Antwort

1

Die Benutzer außerhalb des Netzwerks können patches erstellen und/oder email verwenden, um die Aktualisierungen an das Hauptrepo oder an jemanden wie Sie zu senden, um sie zusammenzuführen. Die anderen internen Personen können lokale Kopien haben, wie Sie selbst und Zusammenführungen - aber wenn Sie diese Netzwerk-Patches haben, könnte es besser sein, dass eine Person mit ihnen beschäftigt, so dass niemand verwirrt wird, aber das ist etwas, was Sie müssen Überlege dir selbst.

Synchronisieren Sie den anderen Weg, würden Sie einen Patch erstellen, und sie E-Mail oder ein Flash-Laufwerk zu den Remote-Entwicklern, um ihr System zu patchen. Du wirst eine gute Kommunikation im Team brauchen, ich bin dankbar, dass ich nicht in deinen Schuhen bin.

Das sind meine einzigen Vorschläge - naja, die offensichtlich, erhalten Sie eine VPN-Verbindung! Ich würde gerne hören, wie es läuft, welche Pläne sich zu einem wöchentlichen Groove festigen und so weiter.

0

Korrekt. Der einzige Weg, wie etwas ins geschlossene Netzwerk gelangt, ist per Flash-Laufwerk.

3

Patches sind eine einfache und vielseitige Lösung.

Um größere Gruppen von Änderungen (insbesondere binäre Änderungen und Zusammenführungen) zu umgehen, bietet Mercurial binäre Bündel an. Ein Bündel ist im Grunde das Binärmaterial, das im Netzwerk gesendet wird, wenn Sie hg push tun, aber hier wird es in einer Datei erfasst.

Stellen wir uns vor, ich habe irgendwie einen Klon (per Flash-Laufwerk, DVD, etc.) bekommen. Nennen Sie es upstream. Ich mache dann einen zweiten Klon, nenne ihn devel. Ich mache meine ganze Entwicklung in devel und mache viele Commits, Merges usw. Da Mercurial verteilt ist, kann ich das alles offline machen.

Um zu sehen, die Changesets sind in upstream fehlt ich

tun
% hg outgoing ../upstream 

Wenn ich etwas zu schicken, ich

% hg bundle changes.hg ../upstream 

verwenden können, um ein binäres komprimierte Datei, die die Changesets inklusive aller enthalten zu bekommen ihre Metadaten. Ich kann diese Datei dann auf eine CD brennen und per Post verschicken ...

kann der Empfänger des Bündels tun

% hg incoming changes.hg 

der Changeset Liste und

% hg pull changes.hg 

auspacken und fügen Sie die Changesets zu seinem Repository zu sehen. Er wird dann wahrscheinlich zusammenführen müssen - das ist genau so, als ob er direkt aus Ihrem Repository über HTTP oder SSH gezogen hätte.

Hinweis: Das Repository upstream dient nur dazu, sich zu merken, welche Changesets bereits im Upstream-Repository vorhanden sind. Sie können auch die Änderungssatz-ID einfach notieren und beim Bündeln hg bundle --base verwenden, um den (gemeinsamen) Basis-Änderungssatz anzugeben. Siehe hg help bundle oder look in the wiki.

Verwandte Themen