WARNUNG: Eine solche "Dummy-Zusammenführung", wie sie empfohlen von @Martin_Geisler Das kann einen ganz schön durcheinander bringen, wenn man später die beiden Zweige wirklich zusammenführen will. Die Scheinzusammenführung wird aufgezeichnet, und wenn Sie in den Zweig zusammenführen, in dem Sie die Scheinzusammenführung durchgeführt haben, werden Sie die Änderungen nicht sehen. Oder wenn Sie in den anderen Zweig zusammenführen, werden die Änderungen in diesem anderen Zweig rückgängig gemacht.
Wenn Sie nur eine ganze Datei von einem Zweig in einen anderen kopieren wollen, können Sie dies 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 dies gerade in meinem Heimatverzeichnis .hgignore getan.
Wenn beide Zweige Änderungen an einer Datei vorgenommen haben, die Sie beibehalten wollen, wäre ein schmutziger Trick, einen Zusammenschluss der beiden Zweige mit hg merge zu erstellen, möglicherweise/möglicherweise auf einem anderen Zweig, diesen einzuchecken und dann eine einzelne Datei zwischen dem Zusammenschluss und dem Zielzweig zu kopieren:
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: der Weg, eine einzelne Datei zwischen Zweigen (oder Revisionen, oder von Revision zu Merge, oder....) zu kopieren, ist "hg revert". D.h..
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 finden ich und einige meiner Kollegen diese SEHR verwirrend. "revert"=="copy" ... macht für einige Verwendungsmuster Sinn, aber nicht für alle.