2016-04-21 11 views
1

Ich muss die alle neuen Changesets eines Merkur-Repository (lasst es A nennen) in ein Unterverzeichnis eines anderen Merkur-Repository (lasst es B nennen) regelmäßig zusammenführen. Das bedeutet, dass nur das Kopieren aller Dateien keine Option ist, da die Dateien in B ebenfalls geändert werden können und eine ordnungsgemäße Zusammenführung erfolgen muss.Ein mercurial-Repository in ein Unterverzeichnis eines anderen zusammenführen

Das einzige, was ich bis jetzt gefunden habe, ist http://hgtip.com/tips/advanced/2009-11-17-combining-repositories/, das ist über die Kombination von Repositories, und nicht wirklich immer und immer wieder einschließlich Changesets zusammenführen.

Irgendwelche Ideen? Danke im Voraus.

Antwort

2

Das klingt wie ein Fall, in dem Sie die Verwendung von sub-repositories machen wollen: Einschließlich Repository A als Unter Repository in das übergeordnete Repository B.

Nehmen wir an, dass alles von A B/A im Pfad gefunden wird. Auf diese Weise haben Sie lokal Ihr Repository B und in ihm ein anderes Repository. Sie können dann zu Repository A gehen, aus dem anderen Repository A 'ziehen und die Zusammenführung durchführen, wie Sie es für richtig halten. Dann gehe zurück zur übergeordneten Ebene, zu Repository B. Aktualisiere den verfolgten Status von A und das war's. Wenn Sie lokale Änderungen vornehmen möchten, die sowohl A als auch B betreffen, verwenden Sie die rekursive hg commit --subrepos. Eine ausführlichere Beschreibung finden Sie unter https://www.mercurial-scm.org/wiki/Subrepository.

Beachten Sie jedoch, dass Sub-Repositories eine Funktion des letzten Ausweges sind; das heißt, es hat einige Ecken und Kanten. Eine davon ist, dass es praktisch unmöglich ist, die Verschränkung der beiden Repositories aufzuheben.

Vielleicht ähnliche Funktionen wie Guest Repositories, HG Nested oder Forest Erweiterungen sind besser für Ihren tatsächlichen Anwendungsfall geeignet.

+0

Ich habe gerade mit der Subrepo-Funktion experimentiert. Es stellt sich heraus, dass ich, wenn ich eine Datei in B/A ändere, lieber auf das Original A anstatt auf B drehe. Aber ich möchte nur Änderungen in meinen B Repo importieren, nicht zurück zu A. Ich mache etwas falsch oder mache das nicht mit Subrepos arbeiten? – loonytune