Mercurial > hg
view tests/test-merge-local.t @ 30829:08b34c3a6f74
revlog: give EXTSTORED flag value to narrowhg
Narrowhg has been using "1 << 14" as its revlog flag value for a long
time. We (Google) have many repos with that value in production
already. When the same value was reserved for EXTSTORED, it made those
repos invalid. Upgrading them will be a little painful. We should
clearly have reserved the value for narrowhg a long time ago. Since
the EXTSTORED flag is not yet in any release and Facebook also says
they have not started using it in production, so it should be okay to
change it. This patch gives the current value (1 << 14) back to
narrowhg and gives a new value (1 << 13) to EXTSTORED.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 17 Jan 2017 11:25:02 -0800 |
parents | 69ffbbe73dd0 |
children | 9e4f82bc2b0b |
line wrap: on
line source
$ hg init Revision 0: $ echo "unchanged" > unchanged $ echo "remove me" > remove $ echo "copy me" > copy $ echo "move me" > move $ for i in 1 2 3 4 5 6 7 8 9; do > echo "merge ok $i" >> zzz1_merge_ok > done $ echo "merge bad" > zzz2_merge_bad $ hg ci -Am "revision 0" adding copy adding move adding remove adding unchanged adding zzz1_merge_ok adding zzz2_merge_bad Revision 1: $ hg rm remove $ hg mv move moved $ hg cp copy copied $ echo "added" > added $ hg add added $ echo "new first line" > zzz1_merge_ok $ hg cat zzz1_merge_ok >> zzz1_merge_ok $ echo "new last line" >> zzz2_merge_bad $ hg ci -m "revision 1" Local changes to revision 0: $ hg co 0 4 files updated, 0 files merged, 3 files removed, 0 files unresolved $ echo "new last line" >> zzz1_merge_ok $ echo "another last line" >> zzz2_merge_bad $ hg diff --nodates | grep "^[+-][^<>]" --- a/zzz1_merge_ok +++ b/zzz1_merge_ok +new last line --- a/zzz2_merge_bad +++ b/zzz2_merge_bad +another last line $ hg st M zzz1_merge_ok M zzz2_merge_bad Local merge with bad merge tool: $ HGMERGE=false hg co merging zzz1_merge_ok merging zzz2_merge_bad merging zzz2_merge_bad failed! 3 files updated, 1 files merged, 2 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges [1] $ hg resolve -m (no more unresolved files) $ hg co 0 merging zzz1_merge_ok merging zzz2_merge_bad warning: conflicts while merging zzz2_merge_bad! (edit, then use 'hg resolve --mark') 2 files updated, 1 files merged, 3 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges [1] $ hg diff --nodates | grep "^[+-][^<>]" --- a/zzz1_merge_ok +++ b/zzz1_merge_ok +new last line --- a/zzz2_merge_bad +++ b/zzz2_merge_bad +another last line +======= $ hg st M zzz1_merge_ok M zzz2_merge_bad ? zzz2_merge_bad.orig Local merge with conflicts: $ hg resolve -m (no more unresolved files) $ hg co merging zzz1_merge_ok merging zzz2_merge_bad warning: conflicts while merging zzz2_merge_bad! (edit, then use 'hg resolve --mark') 3 files updated, 1 files merged, 2 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges [1] $ hg resolve -m (no more unresolved files) $ hg co 0 --config 'ui.origbackuppath=.hg/origbackups' merging zzz1_merge_ok merging zzz2_merge_bad warning: conflicts while merging zzz2_merge_bad! (edit, then use 'hg resolve --mark') 2 files updated, 1 files merged, 3 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges [1] Are orig files from the last commit where we want them? $ ls .hg/origbackups zzz2_merge_bad.orig $ hg diff --nodates | grep "^[+-][^<>]" --- a/zzz1_merge_ok +++ b/zzz1_merge_ok +new last line --- a/zzz2_merge_bad +++ b/zzz2_merge_bad +another last line +======= +======= +new last line +======= $ hg st M zzz1_merge_ok M zzz2_merge_bad ? zzz2_merge_bad.orig Local merge without conflicts: $ hg revert zzz2_merge_bad $ hg resolve -m (no more unresolved files) $ hg co merging zzz1_merge_ok 4 files updated, 1 files merged, 2 files removed, 0 files unresolved $ hg diff --nodates | grep "^[+-][^<>]" --- a/zzz1_merge_ok +++ b/zzz1_merge_ok +new last line $ hg st M zzz1_merge_ok ? zzz2_merge_bad.orig