Mercurial > hg
view tests/test-conflict.t @ 21545:43eecb4e23f8
merge: use separate lists for each action type
This replaces the grand unified action list that had multiple action types as
tuples in one big list. That list was iterated multiple times just to find
actions of a specific type. This data model also made some code more
convoluted than necessary.
Instead we now store actions as a tuple of lists. Using multiple lists gives a
bit of cut'n'pasted code but also enables other optimizations.
This patch uses 'if True:' to preserve indentations and help reviewing. It also
limits the number of conflicts with other pending patches. It can trivially be
cleaned up later.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Fri, 28 Feb 2014 02:25:58 +0100 |
parents | 25d5a9ecbb85 |
children | 9c35f3a8cac4 |
line wrap: on
line source
$ hg init $ echo "nothing" > a $ hg add a $ hg commit -m ancestor $ echo "something" > a $ hg commit -m branch1 $ hg co 0 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo "something else" > a $ hg commit -m branch2 created new head $ hg merge 1 merging a warning: conflicts during merge. merging a incomplete! (edit conflicts, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon [1] $ hg id 32e80765d7fe+75234512624c+ tip $ cat a <<<<<<< local: 32e80765d7fe - test: "branch2" something else ======= something >>>>>>> other: 75234512624c - test: "branch1" $ hg status M a ? a.orig Verify custom conflict markers $ hg up -q --clean . $ printf "\n[ui]\nmergemarkertemplate={author} {rev}\n" >> .hg/hgrc $ hg merge 1 merging a warning: conflicts during merge. merging a incomplete! (edit conflicts, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon [1] $ cat a <<<<<<< local: test 2 something else ======= something >>>>>>> other: test 1 Verify basic conflict markers $ hg up -q --clean . $ printf "\n[ui]\nmergemarkers=basic\n" >> .hg/hgrc $ hg merge 1 merging a warning: conflicts during merge. merging a incomplete! (edit conflicts, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon [1] $ cat a <<<<<<< local something else ======= something >>>>>>> other