Mercurial > hg
annotate tests/test-bundle-vs-outgoing @ 9821:7d2e9121ef4f
bundle: add test for Issue1704
Original version by Greg Ward.
author | Peter Arrenbrecht <peter.arrenbrecht@gmail.com> |
---|---|
date | Sat, 07 Nov 2009 12:28:31 +0100 |
parents | |
children |
rev | line source |
---|---|
9821
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
1 #!/bin/sh |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
2 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
3 # this structure seems to tickle a bug in bundle's search for |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
4 # changesets, so first we have to recreate it |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
5 # |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
6 # o 8 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
7 # | |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
8 # | o 7 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
9 # | | |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
10 # | o 6 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
11 # |/| |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
12 # o | 5 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
13 # | | |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
14 # o | 4 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
15 # | | |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
16 # | o 3 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
17 # | | |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
18 # | o 2 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
19 # |/ |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
20 # o 1 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
21 # | |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
22 # o 0 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
23 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
24 mkrev() |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
25 { |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
26 revno=$1 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
27 echo "rev $revno" |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
28 echo "rev $revno" > foo.txt |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
29 hg -q ci -m"rev $revno" |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
30 } |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
31 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
32 set -e |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
33 echo "% setup test repo1" |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
34 hg init repo1 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
35 cd repo1 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
36 echo "rev 0" > foo.txt |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
37 hg ci -Am"rev 0" |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
38 mkrev 1 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
39 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
40 # first branch |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
41 mkrev 2 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
42 mkrev 3 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
43 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
44 # back to rev 1 to create second branch |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
45 hg up -r1 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
46 mkrev 4 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
47 mkrev 5 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
48 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
49 # merge first branch to second branch |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
50 hg up -C -r5 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
51 HGMERGE=internal:local hg merge |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
52 echo "merge rev 5, rev 3" > foo.txt |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
53 hg ci -m"merge first branch to second branch" |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
54 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
55 # one more commit following the merge |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
56 mkrev 7 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
57 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
58 # back to "second branch" to make another head |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
59 hg up -r5 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
60 mkrev 8 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
61 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
62 echo "[extensions]" >> $HGRCPATH |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
63 echo "graphlog=" >> $HGRCPATH |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
64 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
65 echo "% the story so far" |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
66 hg glog --template "{rev}\n" |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
67 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
68 # check that "hg outgoing" really does the right thing |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
69 echo "% sanity check of outgoing: expect revs 4 5 6 7 8" |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
70 hg clone -r3 . ../repo2 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
71 # this should (and does) report 5 outgoing revisions: 4 5 6 7 8 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
72 hg outgoing --template "{rev}\n" ../repo2 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
73 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
74 echo "% test bundle (destination repo): expect 5 revisions" |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
75 # this should bundle the same 5 revisions that outgoing reported, but it |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
76 # actually bundles 7 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
77 hg bundle foo.bundle ../repo2 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
78 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
79 echo "% test bundle (base revision): expect 5 revisions" |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
80 # this should (and does) give exactly the same result as bundle |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
81 # with a destination repo... i.e. it's wrong too |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
82 hg bundle --base 3 foo.bundle |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
83 |
7d2e9121ef4f
bundle: add test for Issue1704
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff
changeset
|
84 |