Mercurial - zwei lokale Repositorys aktuell halten

esteban313

Lieutenant
Registriert
Juli 2005
Beiträge
760
Moin moin,

ich bräuchte eure Hilfe und Ideen beim Aufsetzen eines Mercurial Repositorys. Ich kenne mich damit leider nicht so gut aus und frage daher euch um Rat.

Kurz zum Szenario

Zwei Personen haben jeweils ihr Repository lokal auf dem Rechner. Ein gemeinsames Repository auf einem Server ist nicht möglich, der Datenaustausch kann lediglich über FTP Server erfolgen. Person 1 erzeugt eine CAD-Datei. Person 2 soll das CAD-Modell vernetzen und dieses Netz Person 1 wieder zur Verfügung stellen. Gleichzeitig sollen beide Personen anhand der Kommentare verfolgen können, welche Änderungen an bestehenden Dateien vorgenommen werden bzw. welche Änderungen neu hinzugefügte Dateien enthalten.


Idee:
  • Start mit leerem Repository (Pers1_Rev0 und Pers2_0)
  • Person 1 fügt Datei hinzu und kommentiert diese (Pers1_Rev0 à Pers1_Rev1)
  • Person 1 erstellt Patch (Diff Pers1_Rev1 – Pers1_Rev0) und sendet diesen Patch an Person 2
  • Person 2 patcht lokales Repository (Pers2_Rev0 à Pers2_Rev1)
  • (beide haben nun denselben Stand mit denselben Revisionsnummern)
  • Person 2 arbeitet mit der Datei und kommentiert die Ergebnisse (Pers2_Rev2)
  • Person 2 erstellt Patch (Diff Pers2_Rev2 – Pers2_Rev1) und sendet diesen Patch an Person 1
  • Person 1 aktualisiert ihr Repository und beide haben denselben Stand (Pers1_Rev2 = Pers1_Rev2)
Vorteil:
  • Bei beiden liegt das Repository in derselben Revision vor à Änderungen können einfach nachverfolgt werden
  • „einfacher“ Datenaustausch über FTP Server
  • Repositorys nur lokal vorhanden
Nachteil:
  • Es darf immer nur abwechseln etwas verändert werden, da sonst die Revisionsnummern sich von beiden Repositorys unterscheiden

Leider ist es unvermeidbar, dass an beiden Repositorys gleichzeitig gearbeitet wird. Daher stimmen die Revisionsnummern nach kurzer Zeit nicht mehr überein. Soweit ich das verstanden habe, sind Patches immer nur auf eine bestimmte Revisionsnummer anwendbar. Dies bedeutet, dass

  • die zu patchende Revision bei der 2. Person gar nicht vorhanden ist
  • aufgrund der abweichenden Revisionsnummern die Nachverfolgbarkeit der Änderungen nicht mehr gegeben ist.


Habt ihr evtl. noch einen Vorschlag, wie man zwei lokale Repositorys aktuell halten ohne dass ein gemeinsamer Server vorliegt? Ist dafür Mercurial überhaupt geeignet bzw. kennt jemand eine bessere Lösung? Oder habe ich einen generellen Denkfehler was die Patches angeht?



Vielen Dank für eure Hilfe!
 
Naja, hg ist (genau wie git) darauf ausgelegt, dezentral Änderungen zu verfolgen. Wenn also parallel (jeweils lokal) an zwei Branches gearbeitet wird, in denen unabhängig von einander Änderungen geschehen, und kann zusammenfinden will an gewissen Punkten, ergäbe es wohl am ehesten Sinn zu den Zeitpunkten das gesamte Repository zu zippen und dann bei der jeweiligen Person, die die Änderungen des anderen übernehmen möchte, ein hg pull / merge auf den Inhalt auszuführen. Das ist ein wenig Ghetto, aber wohl in Ermangelung eines Mercurial Servers die korrekte Vorgehensweise. Mit Patches kannst du wegen der Punkte die du schon erkannt hast nicht arbeiten.
 
  • Gefällt mir
Reaktionen: esteban313
Zurück
Oben