Podczas scalania sprzecznych zmian za pomocą hg merge
Mercurial wstawia zestaw znaczników do plików, które mają zostać scalone w mojej kopii roboczej, w następujący sposób:
<<<<<<< local
version = 0.2
=======
version = 0.1
>>>>>>> other
Następnie ręcznie edytuję wszystkie pliki oznaczone jako U z listy utworzonej przez, hg resolve --all -l
a następnie mówię mercurialowi, że rozwiązałem je przezhg resolve -m file1 file2 file3 ...
W wielu sytuacjach chciałbym jednak zaakceptować tylko moje lub ich jedyne zmiany w niektórych sprzecznych plikach. Myślę o stworzeniu dwóch prostych skryptów sed / awk / o jakiejkolwiek nazwie accept-theirs.sh
i accept-my.sh
czy jest na to „właściwy” sposób?
hg help merge-tools
(connectetools jest aliasem w ostatnich wersjach)[alias] mine = resolve -t internal:local theirs = resolve -t internal:other
.hgrc
, dla początkujących:[alias]
więcmine = resolve -t internal:local
, więctheirs = resolve -t internal:other
. Następnie możesz użyćhg mine some_file.py
lubhg theirs -a
(dla wszystkich)--re-merge
flagi (np.hg resolve -t internal:other --re-merge --all
)Spróbuj tego:
Zobacz także,
hg help merge-tools
aby uzyskać więcej informacji.źródło
resolve
dla pojedynczych plików / ponownego wykonania. (Również cytaty wokółinternal:other
są niepotrzebne.)