##// END OF EJS Templates
localrepo: strip now incrementally updates the branchheads cache...
localrepo: strip now incrementally updates the branchheads cache Destroying history via strip used to invalidate the branchheads cache, causing it to be regenerated the next time it is read. This is expensive in large repos. This change converts strip to pass info to localrepo.destroyed() to enable to it to incrementally update the cache, improving the performance of strip and other operations that depend on it (e.g., rebase). This change also strengthens a bit the integrity checking of the branchheads cache when it is read, by rejecting the cache if it has nodes in it that no longer exist.

File last commit:

r15625:efdcce3f default
r16716:0311a6ab default
Show More
test-double-merge.t
65 lines | 1.7 KiB | text/troff | Tads3Lexer
/ tests / test-double-merge.t
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 $ hg init repo
$ cd repo
$ echo line 1 > foo
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -qAm 'add foo'
Pradeepkumar Gayam
tests: unify test-double-merge
r11973
copy foo to bar and change both files
$ hg cp foo bar
$ echo line 2-1 >> foo
$ echo line 2-2 >> bar
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m 'cp foo bar; change both'
Pradeepkumar Gayam
tests: unify test-double-merge
r11973
in another branch, change foo in a way that doesn't conflict with
the other changes
$ hg up -qC 0
$ echo line 0 > foo
$ hg cat foo >> foo
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m 'change foo'
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 created new head
we get conflicts that shouldn't be there
$ hg merge -P
Martin Geisler
tests: remove unneeded -d flags...
r12156 changeset: 1:484bf6903104
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 user: test
Martin Geisler
tests: remove unneeded -d flags...
r12156 date: Thu Jan 01 00:00:00 1970 +0000
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 summary: cp foo bar; change both
$ hg merge --debug
searching for copies back to rev 1
unmatched files in other:
bar
all copies found (* = to merge, ! = divergent):
bar -> foo *
checking for directory renames
resolving manifests
Martin Geisler
merge: make debug output easier to read...
r15625 overwrite: False, partial: False
ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 foo: versions differ -> m
foo: remote copied to bar -> m
preserving foo for resolve of bar
preserving foo for resolve of foo
updating: foo 1/2 files (50.00%)
picked tool 'internal:merge' for bar (binary False symlink False)
merging foo and bar to bar
Martin Geisler
tests: remove unneeded -d flags...
r12156 my bar@6a0df1dad128+ other bar@484bf6903104 ancestor foo@e6dc8efe11cc
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 premerge successful
updating: foo 2/2 files (100.00%)
picked tool 'internal:merge' for foo (binary False symlink False)
merging foo
Martin Geisler
tests: remove unneeded -d flags...
r12156 my foo@6a0df1dad128+ other foo@484bf6903104 ancestor foo@e6dc8efe11cc
Pradeepkumar Gayam
tests: unify test-double-merge
r11973 premerge successful
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
contents of foo
$ cat foo
line 0
line 1
line 2-1
contents of bar
$ cat bar
line 0
line 1
line 2-2