Mercurial > hg
view tests/test-graft.t @ 15366:06b8db3f25c6 stable
largefiles: test reverting largefiles (coverage creeping ever upwards)
This reveals a small bug: revert reports "reverting .hglf/largefile"
when it really should report "reverting largefile". I don't see an
easy fix, though (short of using ui.pushbuffer() to interfere with
revert's output).
author | Greg Ward <greg@gerg.ca> |
---|---|
date | Tue, 25 Oct 2011 08:56:59 -0400 |
parents | c1930992e111 |
children | 2371f4aea665 dc9fb7015d7f |
line wrap: on
line source
Create a repo with some stuff in it: $ hg init a $ cd a $ echo a > a $ echo a > d $ echo a > e $ hg ci -qAm0 $ echo b > a $ hg ci -m1 -u bar $ hg mv a b $ hg ci -m2 $ hg cp b c $ hg ci -m3 -u baz $ echo b > d $ echo f > e $ hg ci -m4 $ hg up -q 3 $ echo b > e $ hg branch -q stable $ hg ci -m5 $ hg merge -q default --tool internal:local $ hg branch -q default $ hg ci -m6 Need to specify a rev: $ hg graft abort: no revisions specified [255] Can't graft ancestor: $ hg graft 1 2 skipping ancestor revision 1 skipping ancestor revision 2 [255] Can't graft with dirty wd: $ hg up -q 0 $ echo foo > a $ hg graft 1 abort: outstanding uncommitted changes [255] $ hg revert a Graft a rename: $ hg graft 2 -u foo grafting revision 2 merging a and b to b $ hg export tip --git # HG changeset patch # User foo # Date 0 0 # Node ID d2e44c99fd3f31c176ea4efb9eca9f6306c81756 # Parent 68795b066622ca79a25816a662041d8f78f3cd9e 2 diff --git a/a b/b rename from a rename to b --- a/a +++ b/b @@ -1,1 +1,1 @@ -a +b Look for extra:source $ hg log --debug -r tip changeset: 7:d2e44c99fd3f31c176ea4efb9eca9f6306c81756 tag: tip parent: 0:68795b066622ca79a25816a662041d8f78f3cd9e parent: -1:0000000000000000000000000000000000000000 manifest: 7:5d59766436fd8fbcd38e7bebef0f6eaf3eebe637 user: foo date: Thu Jan 01 00:00:00 1970 +0000 files+: b files-: a extra: branch=default extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4 description: 2 Graft out of order, skipping a merge and a duplicate $ hg graft 1 5 4 3 'merge()' 2 --debug skipping ungraftable merge revision 6 scanning for duplicate grafts skipping already grafted revision 2 grafting revision 1 searching for copies back to rev 1 unmatched files in local: a.orig b all copies found (* = to merge, ! = divergent): b -> a * checking for directory renames resolving manifests overwrite False partial False ancestor 68795b066622 local d2e44c99fd3f+ remote 5d205f8b35b6 b: local copied/moved to a -> m preserving b for resolve of b updating: b 1/1 files (100.00%) searching for copies back to rev 1 unmatched files in local: a unmatched files in other: b all copies found (* = to merge, ! = divergent): b -> a * checking for directory renames b b: searching for copy revision for a b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 grafting revision 5 searching for copies back to rev 1 unmatched files in local: a.orig resolving manifests overwrite False partial False ancestor 4c60f11aa304 local 6f5ea6ac8b70+ remote 97f8bfe72746 e: remote is newer -> g updating: e 1/1 files (100.00%) getting e searching for copies back to rev 1 unmatched files in local: c all copies found (* = to merge, ! = divergent): c -> b * checking for directory renames e grafting revision 4 searching for copies back to rev 1 unmatched files in local: a.orig resolving manifests overwrite False partial False ancestor 4c60f11aa304 local 77eb504366ab+ remote 9c233e8e184d e: versions differ -> m d: remote is newer -> g preserving e for resolve of e updating: d 1/2 files (50.00%) getting d updating: e 2/2 files (100.00%) picked tool 'internal:merge' for e (binary False symlink False) merging e my e@77eb504366ab+ other e@9c233e8e184d ancestor e@68795b066622 warning: conflicts during merge. merging e failed! searching for copies back to rev 1 unmatched files in local: c all copies found (* = to merge, ! = divergent): c -> b * checking for directory renames abort: unresolved conflicts, can't continue (use hg resolve and hg graft --continue) [255] Continue without resolve should fail: $ hg graft -c grafting revision 4 abort: unresolved merge conflicts (see hg help resolve) [255] Fix up: $ echo b > e $ hg resolve -m e Continue with a revision should fail: $ hg graft -c 6 abort: can't specify --continue and revisions [255] Continue for real, clobber usernames $ hg graft -c -U grafting revision 4 grafting revision 3 Compare with original: $ hg diff -r 6 $ hg status --rev 0:. -C M d M e A b a A c a R a View graph: $ hg --config extensions.graphlog= log -G --template '{author}@rev: {desc}\n' @ test@rev: 3 | o test@rev: 4 | o test@rev: 5 | o bar@rev: 1 | o foo@rev: 2 | | o test@rev: 6 | |\ | | o test@rev: 5 | | | | o | test@rev: 4 | |/ | o baz@rev: 3 | | | o test@rev: 2 | | | o bar@rev: 1 |/ o test@rev: 0