ACHTUNG: solch ein "Dummy merge", wie es von @Martin_Geisler empfohlen wird, kann Sie wirklich durcheinander bringen, wenn Sie später eine echte Zusammenführung der beiden Zweige machen wollen. Die Dummy-Zusammenführung wird aufgezeichnet, und Sie sagen, dass Sie in die Verzweigung zusammengeführt werden, in der Sie die Dummy-Zusammenführung durchgeführt haben - Sie werden die Änderungen nicht sehen. Oder wenn Sie in den anderen Zweig einmünden, werden die Änderungen in diesem anderen Zweig rückgängig gemacht.
Wenn alles, was Sie wollen, ist eine ganze Datei von einem Ast zum anderen zu kopieren, können Sie einfach tun:
hg update -r to-branch
hg revert -r from-branch file
hg ci -m 'copied single file from from-branch to to-branch
Wenn Sie verschiedene Teile der Datei auswählen möchten, dann "hg record"
nützlich ist.
Ich habe gerade dies auf meinem Home-Verzeichnis. Hgignore.
Wenn beide Zweige Änderungen an einer Datei vorgenommen haben, die Sie beibehalten möchten, wäre es ein schmutziger Trick, eine Zusammenführung der beiden Zweige mit Hilfe von hg merge zu erstellen, möglicherweise/noch in einem anderen Zweig, und dann kopieren eine einzelne Datei zwischen der Zusammenführung und dem zu Zweig:
hg update -r to-branch
branch merge-branch
hg merge -r from-branch
hg ci -m 'temp merge to be discarded"
hg update -r to-branch
hg revert -r merge-branch single-file
hg ci -m 'merged single-file from from-branch to to-branch"
hg strip merge-branch
Es ist erwähnenswert: die Möglichkeit, „eine einzelne Datei zwischen Zweigen kopieren“ (oder Revisionen oder von Revision zu fusionieren, oder ... .) ist "hg zurück". I.e.
hg update -r Where-you-want-to-copy-to
hg revert -r Where-you-want-to-copy-from file-you-want-to-copy
...
hg ci
Aus irgendeinem Grund, den ich und einige meiner Kollegen, finden diese SEHR verwirrend. "revert" == "copy" ... ist sinnvoll für einige Verwendungsmuster, aber nicht für alle.
Dies sollte die akzeptierte Antwort sein statt Der eine Martin Geisler gab, obwohl es die Datei nicht wirklich zusammenführen wird, kopiert man es die meiste Zeit und es wird den Zweig nicht durcheinander bringen. – noamik
Das funktionierte großartig, um eine einzelne Datei von einem Zweig zu bringen Ich merke jedoch, dass das Einchecken in den Kofferraum anscheinend nicht in der Historie der Datei auftaucht, was bedauerlich ist. –
Hallo und danke für deine Antwort. Ich habe jedoch Probleme, in meiner Situation meine Quellzweig enthält eine Datei, die nicht in meinem Standardzweig vorhanden ist, aber ich möchte es zurückkopieren, ohne den Rest des Zweiges zu verschmelzen.Wenn ich versuche, das zu tun, was Sie beschrieben, bekomme ich 'keine solche Datei in rev' Irgendwelche Vorschläge? – propagated