version-control - releases - source tree create tag




Mercurial: Zusammenführen einer Datei zwischen Zweigen in einem Repo (2)

Ich würde nur ein externes Tool wie vimdiff um die beiden Dateien, die ich zusammenführen möchte, zu unterscheiden und sie dann zusammenzuführen. Dies hat den Vorteil, dass Sie Teile der Datei selektiv bearbeiten können. Z.B:

hg update -r branch-merging-to
hg extdiff -p vimdiff -r branch-merging-from file-I-am-merging

Dazu müssen Sie die externen Tools in Ihrer .hgrc aktivieren. Dies bedeutet lediglich das Hinzufügen folgender Zeilen:

[extensions]
hgext.extdiff =  

Wenn ich zwei Zweige in Hg-Repo habe, wie kann ich nur eine Datei mit einem anderen Zweig zusammenführen, ohne dass alle anderen Dateien aus Changeset zusammengeführt werden?

Ist es möglich, nur bestimmte Dateien anstelle von ganzen Changesets zusammenzuführen?


Nee. Mercurial arbeitet auf Änderungsbasis.

Sie können jedoch eine " Scheinzusammenführung " durchführen, bei der Sie die ankommenden Änderungen von einem der Zweige ignorieren. Bevor Sie ein Commit ausführen, können Sie die ausgewählten Dateien in den gewünschten Zustand zurücksetzen:

% HGMERGE=internal:local hg merge     # keep my files
% hg revert --rev other-branch a.txt  # update a.txt to other branch
% hg commit -m 'Dummy merge to pick a.txt from other-branch.'

Vielleicht hilft dir das ein bisschen.





branching-and-merging