Ich möchte die Mercurial-Server an vier verschiedenen Standorten behalten und möchten, dass sie zu jedem Zeitpunkt identisch sind. Das bedeutet, dass jede Änderung an einem von ihnen auf alle anderen Server übertragen werden muss. Wie geht das?Wie synchronisiere ich zwei oder mehr Mercurial-Server?
8
A
Antwort
8
Sie können eine Aktion auf dem Server mit einem incoming
Hook hinzufügen.
Mit Hooks können Sie Aufgaben automatisieren, wenn Ereignisse im Repository auftreten. Immer wenn Sie in das Repository gelangen, können Sie auch zu Ihren Spiegeln wechseln.
Mehr auf Haken: http://hgbook.red-bean.com/read/handling-repository-events-with-hooks.html
Du bist besser dran mit dem ‚changegroup‘ Haken anstelle des ‚eingehenden‘ Haken. Dadurch werden alle Csets gleichzeitig gedrückt, anstatt den Haken für jedes Cset auszuführen. –
Was ist, wenn jemand zur gleichen Zeit an einen der Spiegel drückt, wenn jemand zu einem anderen schiebt. Wenn alle Spiegel sich nur aneinander schieben, scheint es, als würde man Rassenbedingungen bekommen, bei denen Stöße scheitern würden. Vielen Dank. – DRayX
Ah, ja, deshalb drücken Sie nur zu einem Repo. Die Idee eines Spiegels ist eine Sicherung. Du wachst nie auf und sagst "Welches Gesicht werde ich heute rasieren? Das, an dem meine Hände hängen oder das im Spiegel?" Zumindest hoffe ich das nicht. :) Daher sollten die Dinge immer nur * in * auf einen dieser Server überprüft werden. Das ist in Ordnung, weil Sie wahrscheinlich mehr als 1000 Mal mehr lesen als in Ihren Repo schreiben. (Geschichte, Diffs, Zweigwechsel, etc.) Also, wenn der "primäre" Server weit entfernt ist und ein Check-in etwas langsamer ist, wird es niemand bemerken! Ich hoffe das hilft! – leoger