Mercurial > hg
comparison tests/test-update-branches.t @ 12279:28e2e3804f2e
combine tests
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Tue, 14 Sep 2010 12:20:51 +0200 |
parents | tests/test-update-branches@ea8c207a0f78 |
children | b63f6422d2a7 |
comparison
equal
deleted
inserted
replaced
12278:c4c2ba553401 | 12279:28e2e3804f2e |
---|---|
1 # Construct the following history tree: | |
2 # | |
3 # @ 5:e1bb631146ca b1 | |
4 # | | |
5 # o 4:a4fdb3b883c4 0:b608b9236435 b1 | |
6 # | | |
7 # | o 3:4b57d2520816 1:44592833ba9f | |
8 # | | | |
9 # | | o 2:063f31070f65 | |
10 # | |/ | |
11 # | o 1:44592833ba9f | |
12 # |/ | |
13 # o 0:b608b9236435 | |
14 | |
15 $ hg init | |
16 $ echo foo > foo | |
17 $ echo zero > a | |
18 $ hg ci -qAm0 | |
19 $ echo one > a ; hg ci -m1 | |
20 $ echo two > a ; hg ci -m2 | |
21 $ hg up -q 1 | |
22 $ echo three > a ; hg ci -qm3 | |
23 $ hg up -q 0 | |
24 $ hg branch -q b1 | |
25 $ echo four > a ; hg ci -qm4 | |
26 $ echo five > a ; hg ci -qm5 | |
27 | |
28 Initial repo state: | |
29 | |
30 $ hg --config 'extensions.graphlog=' \ | |
31 > glog --template '{rev}:{node|short} {parents} {branches}\n' | |
32 @ 5:e1bb631146ca b1 | |
33 | | |
34 o 4:a4fdb3b883c4 0:b608b9236435 b1 | |
35 | | |
36 | o 3:4b57d2520816 1:44592833ba9f | |
37 | | | |
38 | | o 2:063f31070f65 | |
39 | |/ | |
40 | o 1:44592833ba9f | |
41 |/ | |
42 o 0:b608b9236435 | |
43 | |
44 | |
45 Test helper functions: | |
46 | |
47 $ revtest () { | |
48 > msg=$1 | |
49 > dirtyflag=$2 # 'clean' or 'dirty' | |
50 > startrev=$3 | |
51 > targetrev=$4 | |
52 > opt=$5 | |
53 > hg up -qC $startrev | |
54 > test $dirtyflag = dirty && echo dirty > foo | |
55 > hg up $opt $targetrev | |
56 > hg parent --template 'parent={rev}\n' | |
57 > hg stat | |
58 > } | |
59 | |
60 $ norevtest () { | |
61 > msg=$1 | |
62 > dirtyflag=$2 # 'clean' or 'dirty' | |
63 > startrev=$3 | |
64 > opt=$4 | |
65 > hg up -qC $startrev | |
66 > test $dirtyflag = dirty && echo dirty > foo | |
67 > hg up $opt | |
68 > hg parent --template 'parent={rev}\n' | |
69 > hg stat | |
70 > } | |
71 | |
72 # Test cases are documented in a table in the update function of merge.py. | |
73 # Cases are run as shown in that table, row by row. | |
74 | |
75 $ norevtest 'none clean linear' clean 4 | |
76 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
77 parent=5 | |
78 | |
79 $ norevtest 'none clean same' clean 2 | |
80 abort: crosses branches (use 'hg merge' or use 'hg update -c') | |
81 parent=2 | |
82 | |
83 | |
84 $ revtest 'none clean linear' clean 1 2 | |
85 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
86 parent=2 | |
87 | |
88 $ revtest 'none clean same' clean 2 3 | |
89 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
90 parent=3 | |
91 | |
92 $ revtest 'none clean cross' clean 3 4 | |
93 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
94 parent=4 | |
95 | |
96 | |
97 $ revtest 'none dirty linear' dirty 1 2 | |
98 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
99 parent=2 | |
100 M foo | |
101 | |
102 $ revtest 'none dirty same' dirty 2 3 | |
103 abort: crosses branches (use 'hg merge' to merge or use 'hg update -C' to discard changes) | |
104 parent=2 | |
105 M foo | |
106 | |
107 $ revtest 'none dirty cross' dirty 3 4 | |
108 abort: crosses branches (use 'hg merge' to merge or use 'hg update -C' to discard changes) | |
109 parent=3 | |
110 M foo | |
111 | |
112 | |
113 $ revtest '-C dirty linear' dirty 1 2 -C | |
114 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
115 parent=2 | |
116 | |
117 $ revtest '-c dirty linear' dirty 1 2 -c | |
118 abort: uncommitted local changes | |
119 parent=1 | |
120 M foo | |
121 | |
122 $ norevtest '-c clean same' clean 2 -c | |
123 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
124 parent=3 | |
125 | |
126 $ revtest '-cC dirty linear' dirty 1 2 -cC | |
127 abort: cannot specify both -c/--check and -C/--clean | |
128 parent=1 | |
129 M foo | |
130 |