Frage

Wir haben zwei Entwickler im selben geschlossenen Netzwerk (pfui, blöde Regierung), einen weiteren Entwickler ein paar Autominuten die Straße runter und einen vierten Entwickler auf halbem Weg durch das Land.E-Mail, FTP und Entfernungsmedien sind mögliche Übertragungsmethoden für Personen, die sich nicht im selben Netzwerk befinden.

Ich bin einer der beiden geschlossenen Netzwerkentwickler und betrachte uns als den „Master“-Standort.

Was ist das beste Mercurial-Setup/-Muster für eine Gruppe?Was ist der beste Weg, um Änderungen an/von den Remote-Entwicklern zu übertragen?Da ich verantwortlich bin, ging ich davon aus, dass ich mindestens ein Master-Repo mit einem anderen lokalen Repo behalten müsste, in dem ich mich weiterentwickeln kann.Jede andere Person sollte lediglich einen Klon des Masters benötigen.Ist das richtig?Ich schätze, das macht mich auch für die Zusammenführung verantwortlich?

Wie Sie sehen, versuche ich immer noch, mich mit der verteilten Versionskontrolle auseinanderzusetzen.Ich glaube nicht, dass es mit der Konnektivitätssituation eine andere Möglichkeit gibt, dies zu erreichen.

War es hilfreich?

Lösung

Die Benutzer außerhalb des Netzwerks können machen Patches, und/oder verwenden Email um die Aktualisierungen an das Haupt-Repo oder an jemanden wie Sie selbst zu senden, um sie zusammenzuführen.Die anderen internen Personen können wie Sie lokale Kopien haben und Zusammenführungen durchführen. Wenn Sie diese jedoch über Netzwerk-Patches verfügen, ist es möglicherweise besser, dass sich eine Person um sie kümmert, damit niemand verwirrt wird, aber das müssten Sie tun Betrachten Sie sich selbst.

Bei der umgekehrten Synchronisierung würden Sie einen Patch erstellen und diese senden eine E-Mail oder ein Flash-Laufwerk an die Remote-Entwickler, um ihr System zu patchen.Du wirst eine gute Kommunikation im Team brauchen, Mann, ich bin dankbar, dass ich nicht in deiner Lage bin.

Das sind meine einzigen Vorschläge – nun, das Offensichtliche: Besorgen Sie ihnen eine VPN-Verbindung!Ich würde gerne hören, wie es läuft, welche Pläne sich zu einem wöchentlichen Groove stabilisieren und so weiter.

Andere Tipps

Patches sind eine einfache und vielseitige Lösung.

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

Stellen wir uns vor, ich hätte irgendwie einen Klon bekommen (per Flash-Laufwerk, DVD usw.).Nennen upstream.Ich erstelle dann einen zweiten Klon, nenne ihn devel.Ich mache meine gesamte Entwicklung in devel und viele Commits, Zusammenführungen usw. durchführen.Da Mercurial vertrieben wird, kann ich das alles offline erledigen.

Um zu sehen, welche Änderungssätze fehlen upstream Ich tue

% hg outgoing ../upstream

Wenn ich etwas zu senden habe, kann ich es verwenden

% hg bundle changes.hg ../upstream

um eine binär komprimierte Datei zu erhalten, die die Änderungssätze einschließlich aller ihrer Metadaten enthält.Ich kann diese Datei dann auf eine CD brennen und per Post verschicken...

Der Empfänger des Pakets kann dies tun

% hg incoming changes.hg

um die Changeset-Liste anzuzeigen und

% hg pull changes.hg

um die Änderungssätze zu entpacken und zu seinem Repository hinzuzufügen.Dann wird er höchstwahrscheinlich eine Zusammenführung durchführen müssen – das ist genau so, als hätte er direkt von Ihrem Repository über HTTP oder SSH abgerufen.

Beachten Sie das upstream Das Repository wird nur dazu verwendet, sich bequem zu merken, welche Änderungssätze bereits im Upstream-Repository gefunden wurden.Sie können sich auch einfach die Changeset-ID notieren und verwenden hg bundle --base beim Bündeln, um den grundlegenden (allgemeinen) Änderungssatz anzugeben.Sehen hg help bundle oder schau mal im Wiki.

Richtig.Der einzige Weg, wie etwas in das geschlossene Netzwerk gelangt, ist über ein Flash-Laufwerk.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top