# HG changeset patch # User Benoit Boissinot # Date 1258405805 18000 # Node ID bb508b312359f07799f82d48b303dc448fa047a8 # Parent 44b4a2a3162319ef6d21c9e9f191ecf2c42ea609 bundle: exclude csets given in --base, unless they are in --rev (issue1910) Thanks Jesse Glick for the first version of this patch. diff -r 44b4a2a31623 -r bb508b312359 mercurial/commands.py --- a/mercurial/commands.py Mon Feb 15 00:14:16 2010 +0100 +++ b/mercurial/commands.py Mon Nov 16 16:10:05 2009 -0500 @@ -537,6 +537,7 @@ has.update(repo.changelog.reachable(n)) if revs: visit = list(revs) + has.difference_update(revs) else: visit = repo.changelog.heads() seen = {} @@ -544,7 +545,8 @@ n = visit.pop(0) parents = [p for p in repo.changelog.parents(n) if p not in has] if len(parents) == 0: - o.insert(0, n) + if n not in has: + o.append(n) else: for p in parents: if p not in seen: diff -r 44b4a2a31623 -r bb508b312359 tests/test-bundle-r --- a/tests/test-bundle-r Mon Feb 15 00:14:16 2010 +0100 +++ b/tests/test-bundle-r Mon Nov 16 16:10:05 2009 -0500 @@ -75,6 +75,8 @@ # issue76 msg2163 hg -R test bundle --base 3 -r 3 -r 3 test-bundle-cset-3.hg +# issue1910 +hg -R test bundle --base 7 test-bundle-cset-7.hg hg clone test-2 test-9 cd test-9 @@ -99,6 +101,11 @@ echo % 6 hg tip -q hg verify +hg rollback +hg unbundle ../test-bundle-cset-7.hg +echo % 4 +hg tip -q +hg verify cd ../test hg merge 7 diff -r 44b4a2a31623 -r bb508b312359 tests/test-bundle-r.out --- a/tests/test-bundle-r.out Mon Feb 15 00:14:16 2010 +0100 +++ b/tests/test-bundle-r.out Mon Nov 16 16:10:05 2009 -0500 @@ -163,6 +163,7 @@ 6 changesets found 1 changesets found 1 changesets found +4 changesets found updating to branch default 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % 2 @@ -213,6 +214,19 @@ crosschecking files in changesets and manifests checking files 3 files, 7 changesets, 6 total revisions +rolling back last transaction +adding changesets +adding manifests +adding file changes +added 2 changesets with 2 changes to 2 files +(run 'hg update' to get a working copy) +% 4 +4:836ac62537ab +checking changesets +checking manifests +crosschecking files in changesets and manifests +checking files +2 files, 5 changesets, 5 total revisions warning: detected divergent renames of afile to: anotherfile adifferentfile