##// END OF EJS Templates
tests: port test-log to Python 3...
Augie Fackler -
r36711:19e859ca default
parent child Browse files
Show More
@@ -1,368 +1,369 b''
1 1 test-abort-checkin.t
2 2 test-add.t
3 3 test-addremove-similar.t
4 4 test-addremove.t
5 5 test-amend-subrepo.t
6 6 test-ancestor.py
7 7 test-annotate.py
8 8 test-annotate.t
9 9 test-atomictempfile.py
10 10 test-audit-path.t
11 11 test-audit-subrepo.t
12 12 test-automv.t
13 13 test-backout.t
14 14 test-backwards-remove.t
15 15 test-basic.t
16 16 test-bheads.t
17 17 test-bisect2.t
18 18 test-bookmarks-current.t
19 19 test-bookmarks-merge.t
20 20 test-bookmarks-rebase.t
21 21 test-bookmarks-strip.t
22 22 test-bookmarks.t
23 23 test-branch-option.t
24 24 test-branch-tag-confict.t
25 25 test-branches.t
26 26 test-bundle-phases.t
27 27 test-bundle-vs-outgoing.t
28 28 test-bundle2-multiple-changegroups.t
29 29 test-cappedreader.py
30 30 test-casecollision.t
31 31 test-cat.t
32 32 test-censor.t
33 33 test-changelog-exec.t
34 34 test-check-commit.t
35 35 test-check-execute.t
36 36 test-check-module-imports.t
37 37 test-check-pyflakes.t
38 38 test-check-pylint.t
39 39 test-check-shbang.t
40 40 test-children.t
41 41 test-clone-pull-corruption.t
42 42 test-clone-r.t
43 43 test-clone-update-order.t
44 44 test-command-template.t
45 45 test-commit-amend.t
46 46 test-commit-unresolved.t
47 47 test-commit.t
48 48 test-completion.t
49 49 test-conflict.t
50 50 test-confused-revert.t
51 51 test-contrib-check-code.t
52 52 test-contrib-check-commit.t
53 53 test-convert-authormap.t
54 54 test-convert-clonebranches.t
55 55 test-convert-datesort.t
56 56 test-convert-filemap.t
57 57 test-convert-hg-sink.t
58 58 test-convert-hg-source.t
59 59 test-convert-hg-startrev.t
60 60 test-copy-move-merge.t
61 61 test-copytrace-heuristics.t
62 62 test-debugbuilddag.t
63 63 test-debugbundle.t
64 64 test-debugextensions.t
65 65 test-debugindexdot.t
66 66 test-debugrename.t
67 67 test-diff-binary-file.t
68 68 test-diff-change.t
69 69 test-diff-copy-depth.t
70 70 test-diff-hashes.t
71 71 test-diff-issue2761.t
72 72 test-diff-newlines.t
73 73 test-diff-reverse.t
74 74 test-diff-subdir.t
75 75 test-diffdir.t
76 76 test-directaccess.t
77 77 test-dirstate-backup.t
78 78 test-dirstate-nonnormalset.t
79 79 test-doctest.py
80 80 test-double-merge.t
81 81 test-drawdag.t
82 82 test-duplicateoptions.py
83 83 test-empty-dir.t
84 84 test-empty-file.t
85 85 test-empty-group.t
86 86 test-empty.t
87 87 test-encoding-func.py
88 88 test-encoding.t
89 89 test-eol-add.t
90 90 test-eol-clone.t
91 91 test-eol-tag.t
92 92 test-eol-update.t
93 93 test-excessive-merge.t
94 94 test-exchange-obsmarkers-case-A1.t
95 95 test-exchange-obsmarkers-case-A2.t
96 96 test-exchange-obsmarkers-case-A3.t
97 97 test-exchange-obsmarkers-case-A4.t
98 98 test-exchange-obsmarkers-case-A5.t
99 99 test-exchange-obsmarkers-case-A6.t
100 100 test-exchange-obsmarkers-case-A7.t
101 101 test-exchange-obsmarkers-case-B1.t
102 102 test-exchange-obsmarkers-case-B2.t
103 103 test-exchange-obsmarkers-case-B3.t
104 104 test-exchange-obsmarkers-case-B4.t
105 105 test-exchange-obsmarkers-case-B5.t
106 106 test-exchange-obsmarkers-case-B6.t
107 107 test-exchange-obsmarkers-case-B7.t
108 108 test-exchange-obsmarkers-case-C1.t
109 109 test-exchange-obsmarkers-case-C2.t
110 110 test-exchange-obsmarkers-case-C3.t
111 111 test-exchange-obsmarkers-case-C4.t
112 112 test-exchange-obsmarkers-case-D1.t
113 113 test-exchange-obsmarkers-case-D2.t
114 114 test-exchange-obsmarkers-case-D3.t
115 115 test-exchange-obsmarkers-case-D4.t
116 116 test-execute-bit.t
117 117 test-extdiff.t
118 118 test-extra-filelog-entry.t
119 119 test-filebranch.t
120 120 test-fileset-generated.t
121 121 test-flags.t
122 122 test-generaldelta.t
123 123 test-getbundle.t
124 124 test-git-export.t
125 125 test-glog-topological.t
126 126 test-gpg.t
127 127 test-graft.t
128 128 test-hghave.t
129 129 test-hgignore.t
130 130 test-hgk.t
131 131 test-hgweb-removed.t
132 132 test-histedit-arguments.t
133 133 test-histedit-base.t
134 134 test-histedit-bookmark-motion.t
135 135 test-histedit-commute.t
136 136 test-histedit-drop.t
137 137 test-histedit-edit.t
138 138 test-histedit-fold-non-commute.t
139 139 test-histedit-fold.t
140 140 test-histedit-no-change.t
141 141 test-histedit-non-commute-abort.t
142 142 test-histedit-non-commute.t
143 143 test-histedit-obsolete.t
144 144 test-histedit-outgoing.t
145 145 test-histedit-templates.t
146 146 test-http-branchmap.t
147 147 test-http-bundle1.t
148 148 test-http-clone-r.t
149 149 test-identify.t
150 150 test-imports-checker.t
151 151 test-inherit-mode.t
152 152 test-issue1089.t
153 153 test-issue1102.t
154 154 test-issue1175.t
155 155 test-issue1306.t
156 156 test-issue1438.t
157 157 test-issue1502.t
158 158 test-issue1802.t
159 159 test-issue1877.t
160 160 test-issue1993.t
161 161 test-issue2137.t
162 162 test-issue3084.t
163 163 test-issue4074.t
164 164 test-issue522.t
165 165 test-issue586.t
166 166 test-issue612.t
167 167 test-issue619.t
168 168 test-issue672.t
169 169 test-issue842.t
170 170 test-journal-exists.t
171 171 test-largefiles-cache.t
172 172 test-largefiles-small-disk.t
173 173 test-locate.t
174 174 test-lock-badness.t
175 test-log.t
175 176 test-logexchange.t
176 177 test-lrucachedict.py
177 178 test-mactext.t
178 179 test-manifest-merging.t
179 180 test-manifest.py
180 181 test-manifest.t
181 182 test-match.py
182 183 test-mdiff.py
183 184 test-merge-closedheads.t
184 185 test-merge-commit.t
185 186 test-merge-criss-cross.t
186 187 test-merge-default.t
187 188 test-merge-internal-tools-pattern.t
188 189 test-merge-local.t
189 190 test-merge-remove.t
190 191 test-merge-revert.t
191 192 test-merge-revert2.t
192 193 test-merge-subrepos.t
193 194 test-merge-symlinks.t
194 195 test-merge-types.t
195 196 test-merge1.t
196 197 test-merge10.t
197 198 test-merge2.t
198 199 test-merge4.t
199 200 test-merge5.t
200 201 test-merge6.t
201 202 test-merge7.t
202 203 test-merge8.t
203 204 test-merge9.t
204 205 test-mq-git.t
205 206 test-mq-header-date.t
206 207 test-mq-header-from.t
207 208 test-mq-pull-from-bundle.t
208 209 test-mq-qdiff.t
209 210 test-mq-qfold.t
210 211 test-mq-qgoto.t
211 212 test-mq-qimport-fail-cleanup.t
212 213 test-mq-qpush-exact.t
213 214 test-mq-qqueue.t
214 215 test-mq-qrefresh-replace-log-message.t
215 216 test-mq-qrefresh.t
216 217 test-mq-qrename.t
217 218 test-mq-qsave.t
218 219 test-mq-safety.t
219 220 test-mq-symlinks.t
220 221 test-mv-cp-st-diff.t
221 222 test-narrow-clone-no-ellipsis.t
222 223 test-narrow-clone-nonlinear.t
223 224 test-narrow-clone.t
224 225 test-narrow-commit.t
225 226 test-narrow-copies.t
226 227 test-narrow-debugrebuilddirstate.t
227 228 test-narrow-exchange-merges.t
228 229 test-narrow-exchange.t
229 230 test-narrow-merge.t
230 231 test-narrow-patch.t
231 232 test-narrow-patterns.t
232 233 test-narrow-pull.t
233 234 test-narrow-rebase.t
234 235 test-narrow-shallow-merges.t
235 236 test-narrow-shallow.t
236 237 test-narrow-update.t
237 238 test-nested-repo.t
238 239 test-newbranch.t
239 240 test-obshistory.t
240 241 test-obsmarker-template.t
241 242 test-obsmarkers-effectflag.t
242 243 test-obsolete-bundle-strip.t
243 244 test-obsolete-changeset-exchange.t
244 245 test-obsolete-checkheads.t
245 246 test-obsolete-distributed.t
246 247 test-obsolete-tag-cache.t
247 248 test-parents.t
248 249 test-pathconflicts-merge.t
249 250 test-pathconflicts-update.t
250 251 test-pending.t
251 252 test-permissions.t
252 253 test-phases.t
253 254 test-pull-branch.t
254 255 test-pull-http.t
255 256 test-pull-permission.t
256 257 test-pull-pull-corruption.t
257 258 test-pull-r.t
258 259 test-pull-update.t
259 260 test-purge.t
260 261 test-push-checkheads-partial-C1.t
261 262 test-push-checkheads-partial-C2.t
262 263 test-push-checkheads-partial-C3.t
263 264 test-push-checkheads-partial-C4.t
264 265 test-push-checkheads-pruned-B1.t
265 266 test-push-checkheads-pruned-B2.t
266 267 test-push-checkheads-pruned-B3.t
267 268 test-push-checkheads-pruned-B4.t
268 269 test-push-checkheads-pruned-B5.t
269 270 test-push-checkheads-pruned-B6.t
270 271 test-push-checkheads-pruned-B7.t
271 272 test-push-checkheads-pruned-B8.t
272 273 test-push-checkheads-superceed-A1.t
273 274 test-push-checkheads-superceed-A2.t
274 275 test-push-checkheads-superceed-A3.t
275 276 test-push-checkheads-superceed-A4.t
276 277 test-push-checkheads-superceed-A5.t
277 278 test-push-checkheads-superceed-A6.t
278 279 test-push-checkheads-superceed-A7.t
279 280 test-push-checkheads-superceed-A8.t
280 281 test-push-checkheads-unpushed-D1.t
281 282 test-push-checkheads-unpushed-D2.t
282 283 test-push-checkheads-unpushed-D3.t
283 284 test-push-checkheads-unpushed-D4.t
284 285 test-push-checkheads-unpushed-D5.t
285 286 test-push-checkheads-unpushed-D6.t
286 287 test-push-checkheads-unpushed-D7.t
287 288 test-push-http.t
288 289 test-push-warn.t
289 290 test-pushvars.t
290 291 test-rebase-abort.t
291 292 test-rebase-base-flag.t
292 293 test-rebase-bookmarks.t
293 294 test-rebase-brute-force.t
294 295 test-rebase-cache.t
295 296 test-rebase-check-restore.t
296 297 test-rebase-collapse.t
297 298 test-rebase-dest.t
298 299 test-rebase-detach.t
299 300 test-rebase-emptycommit.t
300 301 test-rebase-inmemory.t
301 302 test-rebase-interruptions.t
302 303 test-rebase-issue-noparam-single-rev.t
303 304 test-rebase-legacy.t
304 305 test-rebase-mq-skip.t
305 306 test-rebase-named-branches.t
306 307 test-rebase-newancestor.t
307 308 test-rebase-obsolete.t
308 309 test-rebase-parameters.t
309 310 test-rebase-partial.t
310 311 test-rebase-pull.t
311 312 test-rebase-rename.t
312 313 test-rebase-scenario-global.t
313 314 test-rebase-templates.t
314 315 test-rebase-transaction.t
315 316 test-record.t
316 317 test-relink.t
317 318 test-remove.t
318 319 test-rename-after-merge.t
319 320 test-rename-dir-merge.t
320 321 test-rename-merge1.t
321 322 test-rename.t
322 323 test-repair-strip.t
323 324 test-repo-compengines.t
324 325 test-resolve.t
325 326 test-revert-flags.t
326 327 test-revert-unknown.t
327 328 test-revlog-ancestry.py
328 329 test-revlog-group-emptyiter.t
329 330 test-revlog-mmapindex.t
330 331 test-revlog-packentry.t
331 332 test-revset-dirstate-parents.t
332 333 test-revset-outgoing.t
333 334 test-run-tests.py
334 335 test-serve.t
335 336 test-share.t
336 337 test-show-stack.t
337 338 test-show-work.t
338 339 test-show.t
339 340 test-simple-update.t
340 341 test-single-head.t
341 342 test-sparse-clear.t
342 343 test-sparse-merges.t
343 344 test-sparse-requirement.t
344 345 test-sparse-verbose-json.t
345 346 test-ssh-clone-r.t
346 347 test-ssh-proto.t
347 348 test-sshserver.py
348 349 test-status-rev.t
349 350 test-status-terse.t
350 351 test-strip-cross.t
351 352 test-strip.t
352 353 test-symlinks.t
353 354 test-unamend.t
354 355 test-uncommit.t
355 356 test-unified-test.t
356 357 test-unrelated-pull.t
357 358 test-up-local-change.t
358 359 test-update-branches.t
359 360 test-update-dest.t
360 361 test-update-issue1456.t
361 362 test-update-names.t
362 363 test-update-reverse.t
363 364 test-url-rev.t
364 365 test-username-newline.t
365 366 test-verify.t
366 367 test-websub.t
367 368 test-win32text.t
368 369 test-xdg.t
@@ -1,2636 +1,2634 b''
1 1 Log on empty repository: checking consistency
2 2
3 3 $ hg init empty
4 4 $ cd empty
5 5 $ hg log
6 6 $ hg log -r 1
7 7 abort: unknown revision '1'!
8 8 [255]
9 9 $ hg log -r -1:0
10 10 abort: unknown revision '-1'!
11 11 [255]
12 12 $ hg log -r 'branch(name)'
13 13 abort: unknown revision 'name'!
14 14 [255]
15 15 $ hg log -r null -q
16 16 -1:000000000000
17 17
18 18 $ cd ..
19 19
20 20 The g is crafted to have 2 filelog topological heads in a linear
21 21 changeset graph
22 22
23 23 $ hg init a
24 24 $ cd a
25 25 $ echo a > a
26 26 $ echo f > f
27 27 $ hg ci -Ama -d '1 0'
28 28 adding a
29 29 adding f
30 30
31 31 $ hg cp a b
32 32 $ hg cp f g
33 33 $ hg ci -mb -d '2 0'
34 34
35 35 $ mkdir dir
36 36 $ hg mv b dir
37 37 $ echo g >> g
38 38 $ echo f >> f
39 39 $ hg ci -mc -d '3 0'
40 40
41 41 $ hg mv a b
42 42 $ hg cp -f f g
43 43 $ echo a > d
44 44 $ hg add d
45 45 $ hg ci -md -d '4 0'
46 46
47 47 $ hg mv dir/b e
48 48 $ hg ci -me -d '5 0'
49 49
50 50 Make sure largefiles doesn't interfere with logging a regular file
51 51 $ hg --debug log a -T '{rev}: {desc}\n' --config extensions.largefiles=
52 52 The fsmonitor extension is incompatible with the largefiles extension and has been disabled. (fsmonitor !)
53 53 updated patterns: .hglf/a, a
54 54 0: a
55 55 $ hg log a
56 56 changeset: 0:9161b9aeaf16
57 57 user: test
58 58 date: Thu Jan 01 00:00:01 1970 +0000
59 59 summary: a
60 60
61 61 $ hg log glob:a*
62 62 changeset: 3:2ca5ba701980
63 63 user: test
64 64 date: Thu Jan 01 00:00:04 1970 +0000
65 65 summary: d
66 66
67 67 changeset: 0:9161b9aeaf16
68 68 user: test
69 69 date: Thu Jan 01 00:00:01 1970 +0000
70 70 summary: a
71 71
72 72 $ hg --debug log glob:a* -T '{rev}: {desc}\n' --config extensions.largefiles=
73 73 The fsmonitor extension is incompatible with the largefiles extension and has been disabled. (fsmonitor !)
74 74 updated patterns: glob:.hglf/a*, glob:a*
75 75 3: d
76 76 0: a
77 77
78 78 log on directory
79 79
80 80 $ hg log dir
81 81 changeset: 4:7e4639b4691b
82 82 tag: tip
83 83 user: test
84 84 date: Thu Jan 01 00:00:05 1970 +0000
85 85 summary: e
86 86
87 87 changeset: 2:f8954cd4dc1f
88 88 user: test
89 89 date: Thu Jan 01 00:00:03 1970 +0000
90 90 summary: c
91 91
92 92 $ hg log somethingthatdoesntexist dir
93 93 changeset: 4:7e4639b4691b
94 94 tag: tip
95 95 user: test
96 96 date: Thu Jan 01 00:00:05 1970 +0000
97 97 summary: e
98 98
99 99 changeset: 2:f8954cd4dc1f
100 100 user: test
101 101 date: Thu Jan 01 00:00:03 1970 +0000
102 102 summary: c
103 103
104 104
105 105 -X, with explicit path
106 106
107 107 $ hg log a -X a
108 108
109 109 -f, non-existent directory
110 110
111 111 $ hg log -f dir
112 112 abort: cannot follow file not in parent revision: "dir"
113 113 [255]
114 114
115 115 -f, directory
116 116
117 117 $ hg up -q 3
118 118 $ hg log -f dir
119 119 changeset: 2:f8954cd4dc1f
120 120 user: test
121 121 date: Thu Jan 01 00:00:03 1970 +0000
122 122 summary: c
123 123
124 124 -f, directory with --patch
125 125
126 126 $ hg log -f dir -p
127 127 changeset: 2:f8954cd4dc1f
128 128 user: test
129 129 date: Thu Jan 01 00:00:03 1970 +0000
130 130 summary: c
131 131
132 132 diff -r d89b0a12d229 -r f8954cd4dc1f dir/b
133 133 --- /dev/null* (glob)
134 134 +++ b/dir/b* (glob)
135 135 @@ -0,0 +1,1 @@
136 136 +a
137 137
138 138
139 139 -f, pattern
140 140
141 141 $ hg log -f -I 'dir**' -p
142 142 changeset: 2:f8954cd4dc1f
143 143 user: test
144 144 date: Thu Jan 01 00:00:03 1970 +0000
145 145 summary: c
146 146
147 147 diff -r d89b0a12d229 -r f8954cd4dc1f dir/b
148 148 --- /dev/null* (glob)
149 149 +++ b/dir/b* (glob)
150 150 @@ -0,0 +1,1 @@
151 151 +a
152 152
153 153 $ hg up -q 4
154 154
155 155 -f, a wrong style
156 156
157 157 $ hg log -f -l1 --style something
158 158 abort: style 'something' not found
159 159 (available styles: bisect, changelog, compact, default, phases, show, status, xml)
160 160 [255]
161 161
162 162 -f, phases style
163 163
164 164
165 165 $ hg log -f -l1 --style phases
166 166 changeset: 4:7e4639b4691b
167 167 tag: tip
168 168 phase: draft
169 169 user: test
170 170 date: Thu Jan 01 00:00:05 1970 +0000
171 171 summary: e
172 172
173 173
174 174 $ hg log -f -l1 --style phases -q
175 175 4:7e4639b4691b
176 176
177 177 -f, but no args
178 178
179 179 $ hg log -f
180 180 changeset: 4:7e4639b4691b
181 181 tag: tip
182 182 user: test
183 183 date: Thu Jan 01 00:00:05 1970 +0000
184 184 summary: e
185 185
186 186 changeset: 3:2ca5ba701980
187 187 user: test
188 188 date: Thu Jan 01 00:00:04 1970 +0000
189 189 summary: d
190 190
191 191 changeset: 2:f8954cd4dc1f
192 192 user: test
193 193 date: Thu Jan 01 00:00:03 1970 +0000
194 194 summary: c
195 195
196 196 changeset: 1:d89b0a12d229
197 197 user: test
198 198 date: Thu Jan 01 00:00:02 1970 +0000
199 199 summary: b
200 200
201 201 changeset: 0:9161b9aeaf16
202 202 user: test
203 203 date: Thu Jan 01 00:00:01 1970 +0000
204 204 summary: a
205 205
206 206
207 207 one rename
208 208
209 209 $ hg up -q 2
210 210 $ hg log -vf a
211 211 changeset: 0:9161b9aeaf16
212 212 user: test
213 213 date: Thu Jan 01 00:00:01 1970 +0000
214 214 files: a f
215 215 description:
216 216 a
217 217
218 218
219 219
220 220 many renames
221 221
222 222 $ hg up -q tip
223 223 $ hg log -vf e
224 224 changeset: 4:7e4639b4691b
225 225 tag: tip
226 226 user: test
227 227 date: Thu Jan 01 00:00:05 1970 +0000
228 228 files: dir/b e
229 229 description:
230 230 e
231 231
232 232
233 233 changeset: 2:f8954cd4dc1f
234 234 user: test
235 235 date: Thu Jan 01 00:00:03 1970 +0000
236 236 files: b dir/b f g
237 237 description:
238 238 c
239 239
240 240
241 241 changeset: 1:d89b0a12d229
242 242 user: test
243 243 date: Thu Jan 01 00:00:02 1970 +0000
244 244 files: b g
245 245 description:
246 246 b
247 247
248 248
249 249 changeset: 0:9161b9aeaf16
250 250 user: test
251 251 date: Thu Jan 01 00:00:01 1970 +0000
252 252 files: a f
253 253 description:
254 254 a
255 255
256 256
257 257
258 258
259 259 log -pf dir/b
260 260
261 261 $ hg up -q 3
262 262 $ hg log -pf dir/b
263 263 changeset: 2:f8954cd4dc1f
264 264 user: test
265 265 date: Thu Jan 01 00:00:03 1970 +0000
266 266 summary: c
267 267
268 268 diff -r d89b0a12d229 -r f8954cd4dc1f dir/b
269 269 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
270 270 +++ b/dir/b Thu Jan 01 00:00:03 1970 +0000
271 271 @@ -0,0 +1,1 @@
272 272 +a
273 273
274 274 changeset: 1:d89b0a12d229
275 275 user: test
276 276 date: Thu Jan 01 00:00:02 1970 +0000
277 277 summary: b
278 278
279 279 diff -r 9161b9aeaf16 -r d89b0a12d229 b
280 280 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
281 281 +++ b/b Thu Jan 01 00:00:02 1970 +0000
282 282 @@ -0,0 +1,1 @@
283 283 +a
284 284
285 285 changeset: 0:9161b9aeaf16
286 286 user: test
287 287 date: Thu Jan 01 00:00:01 1970 +0000
288 288 summary: a
289 289
290 290 diff -r 000000000000 -r 9161b9aeaf16 a
291 291 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
292 292 +++ b/a Thu Jan 01 00:00:01 1970 +0000
293 293 @@ -0,0 +1,1 @@
294 294 +a
295 295
296 296
297 297 log -pf b inside dir
298 298
299 299 $ hg --cwd=dir log -pf b
300 300 changeset: 2:f8954cd4dc1f
301 301 user: test
302 302 date: Thu Jan 01 00:00:03 1970 +0000
303 303 summary: c
304 304
305 305 diff -r d89b0a12d229 -r f8954cd4dc1f dir/b
306 306 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
307 307 +++ b/dir/b Thu Jan 01 00:00:03 1970 +0000
308 308 @@ -0,0 +1,1 @@
309 309 +a
310 310
311 311 changeset: 1:d89b0a12d229
312 312 user: test
313 313 date: Thu Jan 01 00:00:02 1970 +0000
314 314 summary: b
315 315
316 316 diff -r 9161b9aeaf16 -r d89b0a12d229 b
317 317 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
318 318 +++ b/b Thu Jan 01 00:00:02 1970 +0000
319 319 @@ -0,0 +1,1 @@
320 320 +a
321 321
322 322 changeset: 0:9161b9aeaf16
323 323 user: test
324 324 date: Thu Jan 01 00:00:01 1970 +0000
325 325 summary: a
326 326
327 327 diff -r 000000000000 -r 9161b9aeaf16 a
328 328 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
329 329 +++ b/a Thu Jan 01 00:00:01 1970 +0000
330 330 @@ -0,0 +1,1 @@
331 331 +a
332 332
333 333
334 334 log -pf, but no args
335 335
336 336 $ hg log -pf
337 337 changeset: 3:2ca5ba701980
338 338 user: test
339 339 date: Thu Jan 01 00:00:04 1970 +0000
340 340 summary: d
341 341
342 342 diff -r f8954cd4dc1f -r 2ca5ba701980 a
343 343 --- a/a Thu Jan 01 00:00:03 1970 +0000
344 344 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
345 345 @@ -1,1 +0,0 @@
346 346 -a
347 347 diff -r f8954cd4dc1f -r 2ca5ba701980 b
348 348 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
349 349 +++ b/b Thu Jan 01 00:00:04 1970 +0000
350 350 @@ -0,0 +1,1 @@
351 351 +a
352 352 diff -r f8954cd4dc1f -r 2ca5ba701980 d
353 353 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
354 354 +++ b/d Thu Jan 01 00:00:04 1970 +0000
355 355 @@ -0,0 +1,1 @@
356 356 +a
357 357 diff -r f8954cd4dc1f -r 2ca5ba701980 g
358 358 --- a/g Thu Jan 01 00:00:03 1970 +0000
359 359 +++ b/g Thu Jan 01 00:00:04 1970 +0000
360 360 @@ -1,2 +1,2 @@
361 361 f
362 362 -g
363 363 +f
364 364
365 365 changeset: 2:f8954cd4dc1f
366 366 user: test
367 367 date: Thu Jan 01 00:00:03 1970 +0000
368 368 summary: c
369 369
370 370 diff -r d89b0a12d229 -r f8954cd4dc1f b
371 371 --- a/b Thu Jan 01 00:00:02 1970 +0000
372 372 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
373 373 @@ -1,1 +0,0 @@
374 374 -a
375 375 diff -r d89b0a12d229 -r f8954cd4dc1f dir/b
376 376 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
377 377 +++ b/dir/b Thu Jan 01 00:00:03 1970 +0000
378 378 @@ -0,0 +1,1 @@
379 379 +a
380 380 diff -r d89b0a12d229 -r f8954cd4dc1f f
381 381 --- a/f Thu Jan 01 00:00:02 1970 +0000
382 382 +++ b/f Thu Jan 01 00:00:03 1970 +0000
383 383 @@ -1,1 +1,2 @@
384 384 f
385 385 +f
386 386 diff -r d89b0a12d229 -r f8954cd4dc1f g
387 387 --- a/g Thu Jan 01 00:00:02 1970 +0000
388 388 +++ b/g Thu Jan 01 00:00:03 1970 +0000
389 389 @@ -1,1 +1,2 @@
390 390 f
391 391 +g
392 392
393 393 changeset: 1:d89b0a12d229
394 394 user: test
395 395 date: Thu Jan 01 00:00:02 1970 +0000
396 396 summary: b
397 397
398 398 diff -r 9161b9aeaf16 -r d89b0a12d229 b
399 399 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
400 400 +++ b/b Thu Jan 01 00:00:02 1970 +0000
401 401 @@ -0,0 +1,1 @@
402 402 +a
403 403 diff -r 9161b9aeaf16 -r d89b0a12d229 g
404 404 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
405 405 +++ b/g Thu Jan 01 00:00:02 1970 +0000
406 406 @@ -0,0 +1,1 @@
407 407 +f
408 408
409 409 changeset: 0:9161b9aeaf16
410 410 user: test
411 411 date: Thu Jan 01 00:00:01 1970 +0000
412 412 summary: a
413 413
414 414 diff -r 000000000000 -r 9161b9aeaf16 a
415 415 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
416 416 +++ b/a Thu Jan 01 00:00:01 1970 +0000
417 417 @@ -0,0 +1,1 @@
418 418 +a
419 419 diff -r 000000000000 -r 9161b9aeaf16 f
420 420 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
421 421 +++ b/f Thu Jan 01 00:00:01 1970 +0000
422 422 @@ -0,0 +1,1 @@
423 423 +f
424 424
425 425
426 426 log -vf dir/b
427 427
428 428 $ hg log -vf dir/b
429 429 changeset: 2:f8954cd4dc1f
430 430 user: test
431 431 date: Thu Jan 01 00:00:03 1970 +0000
432 432 files: b dir/b f g
433 433 description:
434 434 c
435 435
436 436
437 437 changeset: 1:d89b0a12d229
438 438 user: test
439 439 date: Thu Jan 01 00:00:02 1970 +0000
440 440 files: b g
441 441 description:
442 442 b
443 443
444 444
445 445 changeset: 0:9161b9aeaf16
446 446 user: test
447 447 date: Thu Jan 01 00:00:01 1970 +0000
448 448 files: a f
449 449 description:
450 450 a
451 451
452 452
453 453
454 454
455 455 -f and multiple filelog heads
456 456
457 457 $ hg up -q 2
458 458 $ hg log -f g --template '{rev}\n'
459 459 2
460 460 1
461 461 0
462 462 $ hg up -q tip
463 463 $ hg log -f g --template '{rev}\n'
464 464 3
465 465 2
466 466 0
467 467
468 468 follow files from the specified revisions (issue4959)
469 469
470 470 $ hg log -G -T '{rev} {files},{file_copies % " {source}->{name}"}\n'
471 471 @ 4 dir/b e, dir/b->e
472 472 |
473 473 o 3 a b d g, a->b f->g
474 474 |
475 475 o 2 b dir/b f g, b->dir/b
476 476 |
477 477 o 1 b g, a->b f->g
478 478 |
479 479 o 0 a f,
480 480
481 481
482 482 $ hg log -T '{rev}\n' -fr 4 e
483 483 4
484 484 2
485 485 1
486 486 0
487 487 $ hg log -T '{rev}\n' -fr 2 g
488 488 2
489 489 1
490 490 0
491 491 $ hg log -T '{rev}\n' -fr '2+3' g
492 492 3
493 493 2
494 494 1
495 495 0
496 496
497 497 follow files from the specified revisions with glob patterns (issue5053)
498 498 (BROKEN: should follow copies from e@4)
499 499
500 500 $ hg log -T '{rev}\n' -fr4 e -X '[abcdfg]'
501 501 4
502 502 2 (false !)
503 503 1 (false !)
504 504 0 (false !)
505 505
506 506 follow files from the specified revisions with missing patterns
507 507 (BROKEN: should follow copies from e@4)
508 508
509 509 $ hg log -T '{rev}\n' -fr4 e x
510 510 4
511 511 2 (false !)
512 512 1 (false !)
513 513 0 (false !)
514 514
515 515 follow files from the specified revisions across copies with -p/--patch
516 516
517 517 $ hg log -T '== rev: {rev},{file_copies % " {source}->{name}"} ==\n' -fpr 4 e g
518 518 == rev: 4, dir/b->e ==
519 519 diff -r 2ca5ba701980 -r 7e4639b4691b e
520 520 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
521 521 +++ b/e Thu Jan 01 00:00:05 1970 +0000
522 522 @@ -0,0 +1,1 @@
523 523 +a
524 524
525 525 == rev: 3, a->b f->g ==
526 526 diff -r f8954cd4dc1f -r 2ca5ba701980 g
527 527 --- a/g Thu Jan 01 00:00:03 1970 +0000
528 528 +++ b/g Thu Jan 01 00:00:04 1970 +0000
529 529 @@ -1,2 +1,2 @@
530 530 f
531 531 -g
532 532 +f
533 533
534 534 == rev: 2, b->dir/b ==
535 535 diff -r d89b0a12d229 -r f8954cd4dc1f dir/b
536 536 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
537 537 +++ b/dir/b Thu Jan 01 00:00:03 1970 +0000
538 538 @@ -0,0 +1,1 @@
539 539 +a
540 540 diff -r d89b0a12d229 -r f8954cd4dc1f f
541 541 --- a/f Thu Jan 01 00:00:02 1970 +0000
542 542 +++ b/f Thu Jan 01 00:00:03 1970 +0000
543 543 @@ -1,1 +1,2 @@
544 544 f
545 545 +f
546 546
547 547 == rev: 1, a->b f->g ==
548 548 diff -r 9161b9aeaf16 -r d89b0a12d229 b
549 549 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
550 550 +++ b/b Thu Jan 01 00:00:02 1970 +0000
551 551 @@ -0,0 +1,1 @@
552 552 +a
553 553
554 554 == rev: 0, ==
555 555 diff -r 000000000000 -r 9161b9aeaf16 a
556 556 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
557 557 +++ b/a Thu Jan 01 00:00:01 1970 +0000
558 558 @@ -0,0 +1,1 @@
559 559 +a
560 560 diff -r 000000000000 -r 9161b9aeaf16 f
561 561 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
562 562 +++ b/f Thu Jan 01 00:00:01 1970 +0000
563 563 @@ -0,0 +1,1 @@
564 564 +f
565 565
566 566
567 567 log copies with --copies
568 568
569 569 $ hg log -vC --template '{rev} {file_copies}\n'
570 570 4 e (dir/b)
571 571 3 b (a)g (f)
572 572 2 dir/b (b)
573 573 1 b (a)g (f)
574 574 0
575 575
576 576 log copies switch without --copies, with old filecopy template
577 577
578 578 $ hg log -v --template '{rev} {file_copies_switch%filecopy}\n'
579 579 4
580 580 3
581 581 2
582 582 1
583 583 0
584 584
585 585 log copies switch with --copies
586 586
587 587 $ hg log -vC --template '{rev} {file_copies_switch}\n'
588 588 4 e (dir/b)
589 589 3 b (a)g (f)
590 590 2 dir/b (b)
591 591 1 b (a)g (f)
592 592 0
593 593
594 594
595 595 log copies with hardcoded style and with --style=default
596 596
597 597 $ hg log -vC -r4
598 598 changeset: 4:7e4639b4691b
599 599 tag: tip
600 600 user: test
601 601 date: Thu Jan 01 00:00:05 1970 +0000
602 602 files: dir/b e
603 603 copies: e (dir/b)
604 604 description:
605 605 e
606 606
607 607
608 608 $ hg log -vC -r4 --style=default
609 609 changeset: 4:7e4639b4691b
610 610 tag: tip
611 611 user: test
612 612 date: Thu Jan 01 00:00:05 1970 +0000
613 613 files: dir/b e
614 614 copies: e (dir/b)
615 615 description:
616 616 e
617 617
618 618
619 619 $ hg log -vC -r4 -Tjson
620 620 [
621 621 {
622 622 "rev": 4,
623 623 "node": "7e4639b4691b9f84b81036a8d4fb218ce3c5e3a3",
624 624 "branch": "default",
625 625 "phase": "draft",
626 626 "user": "test",
627 627 "date": [5, 0],
628 628 "desc": "e",
629 629 "bookmarks": [],
630 630 "tags": ["tip"],
631 631 "parents": ["2ca5ba7019804f1f597249caddf22a64d34df0ba"],
632 632 "files": ["dir/b", "e"],
633 633 "copies": {"e": "dir/b"}
634 634 }
635 635 ]
636 636
637 637 log copies, non-linear manifest
638 638
639 639 $ hg up -C 3
640 640 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
641 641 $ hg mv dir/b e
642 642 $ echo foo > foo
643 643 $ hg ci -Ame2 -d '6 0'
644 644 adding foo
645 645 created new head
646 646 $ hg log -v --template '{rev} {file_copies}\n' -r 5
647 647 5 e (dir/b)
648 648
649 649
650 650 log copies, execute bit set
651 651
652 652 #if execbit
653 653 $ chmod +x e
654 654 $ hg ci -me3 -d '7 0'
655 655 $ hg log -v --template '{rev} {file_copies}\n' -r 6
656 656 6
657 657 #endif
658 658
659 659
660 660 log -p d
661 661
662 662 $ hg log -pv d
663 663 changeset: 3:2ca5ba701980
664 664 user: test
665 665 date: Thu Jan 01 00:00:04 1970 +0000
666 666 files: a b d g
667 667 description:
668 668 d
669 669
670 670
671 671 diff -r f8954cd4dc1f -r 2ca5ba701980 d
672 672 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
673 673 +++ b/d Thu Jan 01 00:00:04 1970 +0000
674 674 @@ -0,0 +1,1 @@
675 675 +a
676 676
677 677
678 678
679 679 log --removed file
680 680
681 681 $ hg log --removed -v a
682 682 changeset: 3:2ca5ba701980
683 683 user: test
684 684 date: Thu Jan 01 00:00:04 1970 +0000
685 685 files: a b d g
686 686 description:
687 687 d
688 688
689 689
690 690 changeset: 0:9161b9aeaf16
691 691 user: test
692 692 date: Thu Jan 01 00:00:01 1970 +0000
693 693 files: a f
694 694 description:
695 695 a
696 696
697 697
698 698
699 699 log --removed revrange file
700 700
701 701 $ hg log --removed -v -r0:2 a
702 702 changeset: 0:9161b9aeaf16
703 703 user: test
704 704 date: Thu Jan 01 00:00:01 1970 +0000
705 705 files: a f
706 706 description:
707 707 a
708 708
709 709
710 710 $ cd ..
711 711
712 712 log --follow tests
713 713
714 714 $ hg init follow
715 715 $ cd follow
716 716
717 717 $ echo base > base
718 718 $ hg ci -Ambase -d '1 0'
719 719 adding base
720 720
721 721 $ echo r1 >> base
722 722 $ hg ci -Amr1 -d '1 0'
723 723 $ echo r2 >> base
724 724 $ hg ci -Amr2 -d '1 0'
725 725
726 726 $ hg up -C 1
727 727 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
728 728 $ echo b1 > b1
729 729
730 730 log -r "follow('set:clean()')"
731 731
732 732 $ hg log -r "follow('set:clean()')"
733 733 changeset: 0:67e992f2c4f3
734 734 user: test
735 735 date: Thu Jan 01 00:00:01 1970 +0000
736 736 summary: base
737 737
738 738 changeset: 1:3d5bf5654eda
739 739 user: test
740 740 date: Thu Jan 01 00:00:01 1970 +0000
741 741 summary: r1
742 742
743 743
744 744 $ hg ci -Amb1 -d '1 0'
745 745 adding b1
746 746 created new head
747 747
748 748
749 749 log -f
750 750
751 751 $ hg log -f
752 752 changeset: 3:e62f78d544b4
753 753 tag: tip
754 754 parent: 1:3d5bf5654eda
755 755 user: test
756 756 date: Thu Jan 01 00:00:01 1970 +0000
757 757 summary: b1
758 758
759 759 changeset: 1:3d5bf5654eda
760 760 user: test
761 761 date: Thu Jan 01 00:00:01 1970 +0000
762 762 summary: r1
763 763
764 764 changeset: 0:67e992f2c4f3
765 765 user: test
766 766 date: Thu Jan 01 00:00:01 1970 +0000
767 767 summary: base
768 768
769 769
770 770 log -r follow('glob:b*')
771 771
772 772 $ hg log -r "follow('glob:b*')"
773 773 changeset: 0:67e992f2c4f3
774 774 user: test
775 775 date: Thu Jan 01 00:00:01 1970 +0000
776 776 summary: base
777 777
778 778 changeset: 1:3d5bf5654eda
779 779 user: test
780 780 date: Thu Jan 01 00:00:01 1970 +0000
781 781 summary: r1
782 782
783 783 changeset: 3:e62f78d544b4
784 784 tag: tip
785 785 parent: 1:3d5bf5654eda
786 786 user: test
787 787 date: Thu Jan 01 00:00:01 1970 +0000
788 788 summary: b1
789 789
790 790 log -f -r '1 + 4'
791 791
792 792 $ hg up -C 0
793 793 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
794 794 $ echo b2 > b2
795 795 $ hg ci -Amb2 -d '1 0'
796 796 adding b2
797 797 created new head
798 798 $ hg log -f -r '1 + 4'
799 799 changeset: 4:ddb82e70d1a1
800 800 tag: tip
801 801 parent: 0:67e992f2c4f3
802 802 user: test
803 803 date: Thu Jan 01 00:00:01 1970 +0000
804 804 summary: b2
805 805
806 806 changeset: 1:3d5bf5654eda
807 807 user: test
808 808 date: Thu Jan 01 00:00:01 1970 +0000
809 809 summary: r1
810 810
811 811 changeset: 0:67e992f2c4f3
812 812 user: test
813 813 date: Thu Jan 01 00:00:01 1970 +0000
814 814 summary: base
815 815
816 816
817 817 log -fr with aliases: 'A' should be expanded, but 'reverse()' should have no
818 818 effect
819 819
820 820 $ hg log --config 'revsetalias.reverse(x)=x' --config 'revsetalias.A=1+4' -qfrA
821 821 4:ddb82e70d1a1
822 822 1:3d5bf5654eda
823 823 0:67e992f2c4f3
824 824
825 825 log -r "follow('set:grep(b2)')"
826 826
827 827 $ hg log -r "follow('set:grep(b2)')"
828 828 changeset: 4:ddb82e70d1a1
829 829 tag: tip
830 830 parent: 0:67e992f2c4f3
831 831 user: test
832 832 date: Thu Jan 01 00:00:01 1970 +0000
833 833 summary: b2
834 834
835 835 log -r "follow('set:grep(b2)', 4)"
836 836
837 837 $ hg up -qC 0
838 838 $ hg log -r "follow('set:grep(b2)', 4)"
839 839 changeset: 4:ddb82e70d1a1
840 840 tag: tip
841 841 parent: 0:67e992f2c4f3
842 842 user: test
843 843 date: Thu Jan 01 00:00:01 1970 +0000
844 844 summary: b2
845 845
846 846
847 847 follow files starting from multiple revisions:
848 848
849 849 $ hg log -T '{rev}: {files}\n' -r "follow('glob:b?', startrev=2+3+4)"
850 850 3: b1
851 851 4: b2
852 852
853 853 follow files starting from empty revision:
854 854
855 855 $ hg log -T '{rev}: {files}\n' -r "follow('glob:*', startrev=.-.)"
856 856
857 857 follow starting from revisions:
858 858
859 859 $ hg log -Gq -r "follow(startrev=2+4)"
860 860 o 4:ddb82e70d1a1
861 861 |
862 862 | o 2:60c670bf5b30
863 863 | |
864 864 | o 1:3d5bf5654eda
865 865 |/
866 866 @ 0:67e992f2c4f3
867 867
868 868
869 869 follow the current revision:
870 870
871 871 $ hg log -Gq -r "follow()"
872 872 @ 0:67e992f2c4f3
873 873
874 874
875 875 $ hg up -qC 4
876 876
877 877 log -f -r null
878 878
879 879 $ hg log -f -r null
880 880 changeset: -1:000000000000
881 881 user:
882 882 date: Thu Jan 01 00:00:00 1970 +0000
883 883
884 884 $ hg log -f -r null -G
885 885 o changeset: -1:000000000000
886 886 user:
887 887 date: Thu Jan 01 00:00:00 1970 +0000
888 888
889 889
890 890
891 891 log -f with null parent
892 892
893 893 $ hg up -C null
894 894 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
895 895 $ hg log -f
896 896
897 897
898 898 log -r . with two parents
899 899
900 900 $ hg up -C 3
901 901 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
902 902 $ hg merge tip
903 903 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
904 904 (branch merge, don't forget to commit)
905 905 $ hg log -r .
906 906 changeset: 3:e62f78d544b4
907 907 parent: 1:3d5bf5654eda
908 908 user: test
909 909 date: Thu Jan 01 00:00:01 1970 +0000
910 910 summary: b1
911 911
912 912
913 913
914 914 log -r . with one parent
915 915
916 916 $ hg ci -mm12 -d '1 0'
917 917 $ hg log -r .
918 918 changeset: 5:302e9dd6890d
919 919 tag: tip
920 920 parent: 3:e62f78d544b4
921 921 parent: 4:ddb82e70d1a1
922 922 user: test
923 923 date: Thu Jan 01 00:00:01 1970 +0000
924 924 summary: m12
925 925
926 926
927 927 $ echo postm >> b1
928 928 $ hg ci -Amb1.1 -d'1 0'
929 929
930 930
931 931 log --follow-first
932 932
933 933 $ hg log --follow-first
934 934 changeset: 6:2404bbcab562
935 935 tag: tip
936 936 user: test
937 937 date: Thu Jan 01 00:00:01 1970 +0000
938 938 summary: b1.1
939 939
940 940 changeset: 5:302e9dd6890d
941 941 parent: 3:e62f78d544b4
942 942 parent: 4:ddb82e70d1a1
943 943 user: test
944 944 date: Thu Jan 01 00:00:01 1970 +0000
945 945 summary: m12
946 946
947 947 changeset: 3:e62f78d544b4
948 948 parent: 1:3d5bf5654eda
949 949 user: test
950 950 date: Thu Jan 01 00:00:01 1970 +0000
951 951 summary: b1
952 952
953 953 changeset: 1:3d5bf5654eda
954 954 user: test
955 955 date: Thu Jan 01 00:00:01 1970 +0000
956 956 summary: r1
957 957
958 958 changeset: 0:67e992f2c4f3
959 959 user: test
960 960 date: Thu Jan 01 00:00:01 1970 +0000
961 961 summary: base
962 962
963 963
964 964
965 965 log -P 2
966 966
967 967 $ hg log -P 2
968 968 changeset: 6:2404bbcab562
969 969 tag: tip
970 970 user: test
971 971 date: Thu Jan 01 00:00:01 1970 +0000
972 972 summary: b1.1
973 973
974 974 changeset: 5:302e9dd6890d
975 975 parent: 3:e62f78d544b4
976 976 parent: 4:ddb82e70d1a1
977 977 user: test
978 978 date: Thu Jan 01 00:00:01 1970 +0000
979 979 summary: m12
980 980
981 981 changeset: 4:ddb82e70d1a1
982 982 parent: 0:67e992f2c4f3
983 983 user: test
984 984 date: Thu Jan 01 00:00:01 1970 +0000
985 985 summary: b2
986 986
987 987 changeset: 3:e62f78d544b4
988 988 parent: 1:3d5bf5654eda
989 989 user: test
990 990 date: Thu Jan 01 00:00:01 1970 +0000
991 991 summary: b1
992 992
993 993
994 994
995 995 log -r tip -p --git
996 996
997 997 $ hg log -r tip -p --git
998 998 changeset: 6:2404bbcab562
999 999 tag: tip
1000 1000 user: test
1001 1001 date: Thu Jan 01 00:00:01 1970 +0000
1002 1002 summary: b1.1
1003 1003
1004 1004 diff --git a/b1 b/b1
1005 1005 --- a/b1
1006 1006 +++ b/b1
1007 1007 @@ -1,1 +1,2 @@
1008 1008 b1
1009 1009 +postm
1010 1010
1011 1011
1012 1012
1013 1013 log -r ""
1014 1014
1015 1015 $ hg log -r ''
1016 1016 hg: parse error: empty query
1017 1017 [255]
1018 1018
1019 1019 log -r <some unknown node id>
1020 1020
1021 1021 $ hg log -r 1000000000000000000000000000000000000000
1022 1022 abort: unknown revision '1000000000000000000000000000000000000000'!
1023 1023 [255]
1024 1024
1025 1025 log -k r1
1026 1026
1027 1027 $ hg log -k r1
1028 1028 changeset: 1:3d5bf5654eda
1029 1029 user: test
1030 1030 date: Thu Jan 01 00:00:01 1970 +0000
1031 1031 summary: r1
1032 1032
1033 1033 log -p -l2 --color=always
1034 1034
1035 1035 $ hg --config extensions.color= --config color.mode=ansi \
1036 1036 > log -p -l2 --color=always
1037 1037 \x1b[0;33mchangeset: 6:2404bbcab562\x1b[0m (esc)
1038 1038 tag: tip
1039 1039 user: test
1040 1040 date: Thu Jan 01 00:00:01 1970 +0000
1041 1041 summary: b1.1
1042 1042
1043 1043 \x1b[0;1mdiff -r 302e9dd6890d -r 2404bbcab562 b1\x1b[0m (esc)
1044 1044 \x1b[0;31;1m--- a/b1 Thu Jan 01 00:00:01 1970 +0000\x1b[0m (esc)
1045 1045 \x1b[0;32;1m+++ b/b1 Thu Jan 01 00:00:01 1970 +0000\x1b[0m (esc)
1046 1046 \x1b[0;35m@@ -1,1 +1,2 @@\x1b[0m (esc)
1047 1047 b1
1048 1048 \x1b[0;32m+postm\x1b[0m (esc)
1049 1049
1050 1050 \x1b[0;33mchangeset: 5:302e9dd6890d\x1b[0m (esc)
1051 1051 parent: 3:e62f78d544b4
1052 1052 parent: 4:ddb82e70d1a1
1053 1053 user: test
1054 1054 date: Thu Jan 01 00:00:01 1970 +0000
1055 1055 summary: m12
1056 1056
1057 1057 \x1b[0;1mdiff -r e62f78d544b4 -r 302e9dd6890d b2\x1b[0m (esc)
1058 1058 \x1b[0;31;1m--- /dev/null Thu Jan 01 00:00:00 1970 +0000\x1b[0m (esc)
1059 1059 \x1b[0;32;1m+++ b/b2 Thu Jan 01 00:00:01 1970 +0000\x1b[0m (esc)
1060 1060 \x1b[0;35m@@ -0,0 +1,1 @@\x1b[0m (esc)
1061 1061 \x1b[0;32m+b2\x1b[0m (esc)
1062 1062
1063 1063
1064 1064
1065 1065 log -r tip --stat
1066 1066
1067 1067 $ hg log -r tip --stat
1068 1068 changeset: 6:2404bbcab562
1069 1069 tag: tip
1070 1070 user: test
1071 1071 date: Thu Jan 01 00:00:01 1970 +0000
1072 1072 summary: b1.1
1073 1073
1074 1074 b1 | 1 +
1075 1075 1 files changed, 1 insertions(+), 0 deletions(-)
1076 1076
1077 1077
1078 1078 $ cd ..
1079 1079
1080 1080 log --follow --patch FILE in repository where linkrev isn't trustworthy
1081 1081 (issue5376)
1082 1082
1083 1083 $ hg init follow-dup
1084 1084 $ cd follow-dup
1085 1085 $ cat <<EOF >> .hg/hgrc
1086 1086 > [ui]
1087 1087 > logtemplate = '=== {rev}: {desc}\n'
1088 1088 > [diff]
1089 1089 > nodates = True
1090 1090 > EOF
1091 1091 $ echo 0 >> a
1092 1092 $ hg ci -qAm 'a0'
1093 1093 $ echo 1 >> a
1094 1094 $ hg ci -m 'a1'
1095 1095 $ hg up -q 0
1096 1096 $ echo 1 >> a
1097 1097 $ touch b
1098 1098 $ hg ci -qAm 'a1 with b'
1099 1099 $ echo 3 >> a
1100 1100 $ hg ci -m 'a3'
1101 1101
1102 1102 fctx.rev() == 2, but fctx.linkrev() == 1
1103 1103
1104 1104 $ hg log -pf a
1105 1105 === 3: a3
1106 1106 diff -r 4ea02ba94d66 -r e7a6331a34f0 a
1107 1107 --- a/a
1108 1108 +++ b/a
1109 1109 @@ -1,2 +1,3 @@
1110 1110 0
1111 1111 1
1112 1112 +3
1113 1113
1114 1114 === 2: a1 with b
1115 1115 diff -r 49b5e81287e2 -r 4ea02ba94d66 a
1116 1116 --- a/a
1117 1117 +++ b/a
1118 1118 @@ -1,1 +1,2 @@
1119 1119 0
1120 1120 +1
1121 1121
1122 1122 === 0: a0
1123 1123 diff -r 000000000000 -r 49b5e81287e2 a
1124 1124 --- /dev/null
1125 1125 +++ b/a
1126 1126 @@ -0,0 +1,1 @@
1127 1127 +0
1128 1128
1129 1129
1130 1130 fctx.introrev() == 2, but fctx.linkrev() == 1
1131 1131
1132 1132 $ hg up -q 2
1133 1133 $ hg log -pf a
1134 1134 === 2: a1 with b
1135 1135 diff -r 49b5e81287e2 -r 4ea02ba94d66 a
1136 1136 --- a/a
1137 1137 +++ b/a
1138 1138 @@ -1,1 +1,2 @@
1139 1139 0
1140 1140 +1
1141 1141
1142 1142 === 0: a0
1143 1143 diff -r 000000000000 -r 49b5e81287e2 a
1144 1144 --- /dev/null
1145 1145 +++ b/a
1146 1146 @@ -0,0 +1,1 @@
1147 1147 +0
1148 1148
1149 1149
1150 1150 $ cd ..
1151 1151
1152 1152 Multiple copy sources of a file:
1153 1153
1154 1154 $ hg init follow-multi
1155 1155 $ cd follow-multi
1156 1156 $ echo 0 >> a
1157 1157 $ hg ci -qAm 'a'
1158 1158 $ hg cp a b
1159 1159 $ hg ci -m 'a->b'
1160 1160 $ echo 2 >> a
1161 1161 $ hg ci -m 'a'
1162 1162 $ echo 3 >> b
1163 1163 $ hg ci -m 'b'
1164 1164 $ echo 4 >> a
1165 1165 $ echo 4 >> b
1166 1166 $ hg ci -m 'a,b'
1167 1167 $ echo 5 >> a
1168 1168 $ hg ci -m 'a0'
1169 1169 $ echo 6 >> b
1170 1170 $ hg ci -m 'b0'
1171 1171 $ hg up -q 4
1172 1172 $ echo 7 >> b
1173 1173 $ hg ci -m 'b1'
1174 1174 created new head
1175 1175 $ echo 8 >> a
1176 1176 $ hg ci -m 'a1'
1177 1177 $ hg rm a
1178 1178 $ hg mv b a
1179 1179 $ hg ci -m 'b1->a1'
1180 1180 $ hg merge -qt :local
1181 1181 $ hg ci -m '(a0,b1->a1)->a'
1182 1182
1183 1183 $ hg log -GT '{rev}: {desc}\n'
1184 1184 @ 10: (a0,b1->a1)->a
1185 1185 |\
1186 1186 | o 9: b1->a1
1187 1187 | |
1188 1188 | o 8: a1
1189 1189 | |
1190 1190 | o 7: b1
1191 1191 | |
1192 1192 o | 6: b0
1193 1193 | |
1194 1194 o | 5: a0
1195 1195 |/
1196 1196 o 4: a,b
1197 1197 |
1198 1198 o 3: b
1199 1199 |
1200 1200 o 2: a
1201 1201 |
1202 1202 o 1: a->b
1203 1203 |
1204 1204 o 0: a
1205 1205
1206 1206
1207 1207 since file 'a' has multiple copy sources at the revision 4, ancestors can't
1208 1208 be indexed solely by fctx.linkrev().
1209 1209
1210 1210 $ hg log -T '{rev}: {desc}\n' -f a
1211 1211 10: (a0,b1->a1)->a
1212 1212 9: b1->a1
1213 1213 7: b1
1214 1214 5: a0
1215 1215 4: a,b
1216 1216 3: b
1217 1217 2: a
1218 1218 1: a->b
1219 1219 0: a
1220 1220
1221 1221 $ cd ..
1222 1222
1223 1223 Test that log should respect the order of -rREV even if multiple OR conditions
1224 1224 are specified (issue5100):
1225 1225
1226 1226 $ hg init revorder
1227 1227 $ cd revorder
1228 1228
1229 1229 $ hg branch -q b0
1230 1230 $ echo 0 >> f0
1231 1231 $ hg ci -qAm k0 -u u0
1232 1232 $ hg branch -q b1
1233 1233 $ echo 1 >> f1
1234 1234 $ hg ci -qAm k1 -u u1
1235 1235 $ hg branch -q b2
1236 1236 $ echo 2 >> f2
1237 1237 $ hg ci -qAm k2 -u u2
1238 1238
1239 1239 $ hg update -q b2
1240 1240 $ echo 3 >> f2
1241 1241 $ hg ci -qAm k2 -u u2
1242 1242 $ hg update -q b1
1243 1243 $ echo 4 >> f1
1244 1244 $ hg ci -qAm k1 -u u1
1245 1245 $ hg update -q b0
1246 1246 $ echo 5 >> f0
1247 1247 $ hg ci -qAm k0 -u u0
1248 1248
1249 1249 summary of revisions:
1250 1250
1251 1251 $ hg log -G -T '{rev} {branch} {author} {desc} {files}\n'
1252 1252 @ 5 b0 u0 k0 f0
1253 1253 |
1254 1254 | o 4 b1 u1 k1 f1
1255 1255 | |
1256 1256 | | o 3 b2 u2 k2 f2
1257 1257 | | |
1258 1258 | | o 2 b2 u2 k2 f2
1259 1259 | |/
1260 1260 | o 1 b1 u1 k1 f1
1261 1261 |/
1262 1262 o 0 b0 u0 k0 f0
1263 1263
1264 1264
1265 1265 log -b BRANCH in ascending order:
1266 1266
1267 1267 $ hg log -r0:tip -T '{rev} {branch}\n' -b b0 -b b1
1268 1268 0 b0
1269 1269 1 b1
1270 1270 4 b1
1271 1271 5 b0
1272 1272 $ hg log -r0:tip -T '{rev} {branch}\n' -b b1 -b b0
1273 1273 0 b0
1274 1274 1 b1
1275 1275 4 b1
1276 1276 5 b0
1277 1277
1278 1278 log --only-branch BRANCH in descending order:
1279 1279
1280 1280 $ hg log -rtip:0 -T '{rev} {branch}\n' --only-branch b1 --only-branch b2
1281 1281 4 b1
1282 1282 3 b2
1283 1283 2 b2
1284 1284 1 b1
1285 1285 $ hg log -rtip:0 -T '{rev} {branch}\n' --only-branch b2 --only-branch b1
1286 1286 4 b1
1287 1287 3 b2
1288 1288 2 b2
1289 1289 1 b1
1290 1290
1291 1291 log -u USER in ascending order, against compound set:
1292 1292
1293 1293 $ hg log -r'::head()' -T '{rev} {author}\n' -u u0 -u u2
1294 1294 0 u0
1295 1295 2 u2
1296 1296 3 u2
1297 1297 5 u0
1298 1298 $ hg log -r'::head()' -T '{rev} {author}\n' -u u2 -u u0
1299 1299 0 u0
1300 1300 2 u2
1301 1301 3 u2
1302 1302 5 u0
1303 1303
1304 1304 log -k TEXT in descending order, against compound set:
1305 1305
1306 1306 $ hg log -r'5 + reverse(::3)' -T '{rev} {desc}\n' -k k0 -k k1 -k k2
1307 1307 5 k0
1308 1308 3 k2
1309 1309 2 k2
1310 1310 1 k1
1311 1311 0 k0
1312 1312 $ hg log -r'5 + reverse(::3)' -T '{rev} {desc}\n' -k k2 -k k1 -k k0
1313 1313 5 k0
1314 1314 3 k2
1315 1315 2 k2
1316 1316 1 k1
1317 1317 0 k0
1318 1318
1319 1319 log FILE in ascending order, against dagrange:
1320 1320
1321 1321 $ hg log -r1:: -T '{rev} {files}\n' f1 f2
1322 1322 1 f1
1323 1323 2 f2
1324 1324 3 f2
1325 1325 4 f1
1326 1326 $ hg log -r1:: -T '{rev} {files}\n' f2 f1
1327 1327 1 f1
1328 1328 2 f2
1329 1329 3 f2
1330 1330 4 f1
1331 1331
1332 1332 $ cd ..
1333 1333
1334 1334 User
1335 1335
1336 1336 $ hg init usertest
1337 1337 $ cd usertest
1338 1338
1339 1339 $ echo a > a
1340 1340 $ hg ci -A -m "a" -u "User One <user1@example.org>"
1341 1341 adding a
1342 1342 $ echo b > b
1343 1343 $ hg ci -A -m "b" -u "User Two <user2@example.org>"
1344 1344 adding b
1345 1345
1346 1346 $ hg log -u "User One <user1@example.org>"
1347 1347 changeset: 0:29a4c94f1924
1348 1348 user: User One <user1@example.org>
1349 1349 date: Thu Jan 01 00:00:00 1970 +0000
1350 1350 summary: a
1351 1351
1352 1352 $ hg log -u "user1" -u "user2"
1353 1353 changeset: 1:e834b5e69c0e
1354 1354 tag: tip
1355 1355 user: User Two <user2@example.org>
1356 1356 date: Thu Jan 01 00:00:00 1970 +0000
1357 1357 summary: b
1358 1358
1359 1359 changeset: 0:29a4c94f1924
1360 1360 user: User One <user1@example.org>
1361 1361 date: Thu Jan 01 00:00:00 1970 +0000
1362 1362 summary: a
1363 1363
1364 1364 $ hg log -u "user3"
1365 1365
1366 1366 "-u USER" shouldn't be overridden by "user(USER)" alias
1367 1367
1368 1368 $ hg log --config 'revsetalias.user(x)=branch(x)' -u default
1369 1369 $ hg log --config 'revsetalias.user(x)=branch(x)' -u user1
1370 1370 changeset: 0:29a4c94f1924
1371 1371 user: User One <user1@example.org>
1372 1372 date: Thu Jan 01 00:00:00 1970 +0000
1373 1373 summary: a
1374 1374
1375 1375
1376 1376 $ cd ..
1377 1377
1378 1378 $ hg init branches
1379 1379 $ cd branches
1380 1380
1381 1381 $ echo a > a
1382 1382 $ hg ci -A -m "commit on default"
1383 1383 adding a
1384 1384 $ hg branch test
1385 1385 marked working directory as branch test
1386 1386 (branches are permanent and global, did you want a bookmark?)
1387 1387 $ echo b > b
1388 1388 $ hg ci -A -m "commit on test"
1389 1389 adding b
1390 1390
1391 1391 $ hg up default
1392 1392 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1393 1393 $ echo c > c
1394 1394 $ hg ci -A -m "commit on default"
1395 1395 adding c
1396 1396 $ hg up test
1397 1397 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1398 1398 $ echo c > c
1399 1399 $ hg ci -A -m "commit on test"
1400 1400 adding c
1401 1401
1402 1402
1403 1403 log -b default
1404 1404
1405 1405 $ hg log -b default
1406 1406 changeset: 2:c3a4f03cc9a7
1407 1407 parent: 0:24427303d56f
1408 1408 user: test
1409 1409 date: Thu Jan 01 00:00:00 1970 +0000
1410 1410 summary: commit on default
1411 1411
1412 1412 changeset: 0:24427303d56f
1413 1413 user: test
1414 1414 date: Thu Jan 01 00:00:00 1970 +0000
1415 1415 summary: commit on default
1416 1416
1417 1417
1418 1418
1419 1419 log -b test
1420 1420
1421 1421 $ hg log -b test
1422 1422 changeset: 3:f5d8de11c2e2
1423 1423 branch: test
1424 1424 tag: tip
1425 1425 parent: 1:d32277701ccb
1426 1426 user: test
1427 1427 date: Thu Jan 01 00:00:00 1970 +0000
1428 1428 summary: commit on test
1429 1429
1430 1430 changeset: 1:d32277701ccb
1431 1431 branch: test
1432 1432 user: test
1433 1433 date: Thu Jan 01 00:00:00 1970 +0000
1434 1434 summary: commit on test
1435 1435
1436 1436
1437 1437
1438 1438 log -b dummy
1439 1439
1440 1440 $ hg log -b dummy
1441 1441 abort: unknown revision 'dummy'!
1442 1442 [255]
1443 1443
1444 1444
1445 1445 log -b .
1446 1446
1447 1447 $ hg log -b .
1448 1448 changeset: 3:f5d8de11c2e2
1449 1449 branch: test
1450 1450 tag: tip
1451 1451 parent: 1:d32277701ccb
1452 1452 user: test
1453 1453 date: Thu Jan 01 00:00:00 1970 +0000
1454 1454 summary: commit on test
1455 1455
1456 1456 changeset: 1:d32277701ccb
1457 1457 branch: test
1458 1458 user: test
1459 1459 date: Thu Jan 01 00:00:00 1970 +0000
1460 1460 summary: commit on test
1461 1461
1462 1462
1463 1463
1464 1464 log -b default -b test
1465 1465
1466 1466 $ hg log -b default -b test
1467 1467 changeset: 3:f5d8de11c2e2
1468 1468 branch: test
1469 1469 tag: tip
1470 1470 parent: 1:d32277701ccb
1471 1471 user: test
1472 1472 date: Thu Jan 01 00:00:00 1970 +0000
1473 1473 summary: commit on test
1474 1474
1475 1475 changeset: 2:c3a4f03cc9a7
1476 1476 parent: 0:24427303d56f
1477 1477 user: test
1478 1478 date: Thu Jan 01 00:00:00 1970 +0000
1479 1479 summary: commit on default
1480 1480
1481 1481 changeset: 1:d32277701ccb
1482 1482 branch: test
1483 1483 user: test
1484 1484 date: Thu Jan 01 00:00:00 1970 +0000
1485 1485 summary: commit on test
1486 1486
1487 1487 changeset: 0:24427303d56f
1488 1488 user: test
1489 1489 date: Thu Jan 01 00:00:00 1970 +0000
1490 1490 summary: commit on default
1491 1491
1492 1492
1493 1493
1494 1494 log -b default -b .
1495 1495
1496 1496 $ hg log -b default -b .
1497 1497 changeset: 3:f5d8de11c2e2
1498 1498 branch: test
1499 1499 tag: tip
1500 1500 parent: 1:d32277701ccb
1501 1501 user: test
1502 1502 date: Thu Jan 01 00:00:00 1970 +0000
1503 1503 summary: commit on test
1504 1504
1505 1505 changeset: 2:c3a4f03cc9a7
1506 1506 parent: 0:24427303d56f
1507 1507 user: test
1508 1508 date: Thu Jan 01 00:00:00 1970 +0000
1509 1509 summary: commit on default
1510 1510
1511 1511 changeset: 1:d32277701ccb
1512 1512 branch: test
1513 1513 user: test
1514 1514 date: Thu Jan 01 00:00:00 1970 +0000
1515 1515 summary: commit on test
1516 1516
1517 1517 changeset: 0:24427303d56f
1518 1518 user: test
1519 1519 date: Thu Jan 01 00:00:00 1970 +0000
1520 1520 summary: commit on default
1521 1521
1522 1522
1523 1523
1524 1524 log -b . -b test
1525 1525
1526 1526 $ hg log -b . -b test
1527 1527 changeset: 3:f5d8de11c2e2
1528 1528 branch: test
1529 1529 tag: tip
1530 1530 parent: 1:d32277701ccb
1531 1531 user: test
1532 1532 date: Thu Jan 01 00:00:00 1970 +0000
1533 1533 summary: commit on test
1534 1534
1535 1535 changeset: 1:d32277701ccb
1536 1536 branch: test
1537 1537 user: test
1538 1538 date: Thu Jan 01 00:00:00 1970 +0000
1539 1539 summary: commit on test
1540 1540
1541 1541
1542 1542
1543 1543 log -b 2
1544 1544
1545 1545 $ hg log -b 2
1546 1546 changeset: 2:c3a4f03cc9a7
1547 1547 parent: 0:24427303d56f
1548 1548 user: test
1549 1549 date: Thu Jan 01 00:00:00 1970 +0000
1550 1550 summary: commit on default
1551 1551
1552 1552 changeset: 0:24427303d56f
1553 1553 user: test
1554 1554 date: Thu Jan 01 00:00:00 1970 +0000
1555 1555 summary: commit on default
1556 1556
1557 1557 #if gettext
1558 1558
1559 1559 Test that all log names are translated (e.g. branches, bookmarks, tags):
1560 1560
1561 1561 $ hg bookmark babar -r tip
1562 1562
1563 1563 $ HGENCODING=UTF-8 LANGUAGE=de hg log -r tip
1564 1564 \xc3\x84nderung: 3:f5d8de11c2e2 (esc)
1565 1565 Zweig: test
1566 1566 Lesezeichen: babar
1567 1567 Marke: tip
1568 1568 Vorg\xc3\xa4nger: 1:d32277701ccb (esc)
1569 1569 Nutzer: test
1570 1570 Datum: Thu Jan 01 00:00:00 1970 +0000
1571 1571 Zusammenfassung: commit on test
1572 1572
1573 1573 $ hg bookmark -d babar
1574 1574
1575 1575 #endif
1576 1576
1577 1577 log -p --cwd dir (in subdir)
1578 1578
1579 1579 $ mkdir dir
1580 1580 $ hg log -p --cwd dir
1581 1581 changeset: 3:f5d8de11c2e2
1582 1582 branch: test
1583 1583 tag: tip
1584 1584 parent: 1:d32277701ccb
1585 1585 user: test
1586 1586 date: Thu Jan 01 00:00:00 1970 +0000
1587 1587 summary: commit on test
1588 1588
1589 1589 diff -r d32277701ccb -r f5d8de11c2e2 c
1590 1590 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1591 1591 +++ b/c Thu Jan 01 00:00:00 1970 +0000
1592 1592 @@ -0,0 +1,1 @@
1593 1593 +c
1594 1594
1595 1595 changeset: 2:c3a4f03cc9a7
1596 1596 parent: 0:24427303d56f
1597 1597 user: test
1598 1598 date: Thu Jan 01 00:00:00 1970 +0000
1599 1599 summary: commit on default
1600 1600
1601 1601 diff -r 24427303d56f -r c3a4f03cc9a7 c
1602 1602 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1603 1603 +++ b/c Thu Jan 01 00:00:00 1970 +0000
1604 1604 @@ -0,0 +1,1 @@
1605 1605 +c
1606 1606
1607 1607 changeset: 1:d32277701ccb
1608 1608 branch: test
1609 1609 user: test
1610 1610 date: Thu Jan 01 00:00:00 1970 +0000
1611 1611 summary: commit on test
1612 1612
1613 1613 diff -r 24427303d56f -r d32277701ccb b
1614 1614 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1615 1615 +++ b/b Thu Jan 01 00:00:00 1970 +0000
1616 1616 @@ -0,0 +1,1 @@
1617 1617 +b
1618 1618
1619 1619 changeset: 0:24427303d56f
1620 1620 user: test
1621 1621 date: Thu Jan 01 00:00:00 1970 +0000
1622 1622 summary: commit on default
1623 1623
1624 1624 diff -r 000000000000 -r 24427303d56f a
1625 1625 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1626 1626 +++ b/a Thu Jan 01 00:00:00 1970 +0000
1627 1627 @@ -0,0 +1,1 @@
1628 1628 +a
1629 1629
1630 1630
1631 1631
1632 1632 log -p -R repo
1633 1633
1634 1634 $ cd dir
1635 1635 $ hg log -p -R .. ../a
1636 1636 changeset: 0:24427303d56f
1637 1637 user: test
1638 1638 date: Thu Jan 01 00:00:00 1970 +0000
1639 1639 summary: commit on default
1640 1640
1641 1641 diff -r 000000000000 -r 24427303d56f a
1642 1642 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1643 1643 +++ b/a Thu Jan 01 00:00:00 1970 +0000
1644 1644 @@ -0,0 +1,1 @@
1645 1645 +a
1646 1646
1647 1647
1648 1648 $ cd ../..
1649 1649
1650 1650 $ hg init follow2
1651 1651 $ cd follow2
1652 1652
1653 1653 # Build the following history:
1654 1654 # tip - o - x - o - x - x
1655 1655 # \ /
1656 1656 # o - o - o - x
1657 1657 # \ /
1658 1658 # o
1659 1659 #
1660 1660 # Where "o" is a revision containing "foo" and
1661 1661 # "x" is a revision without "foo"
1662 1662
1663 1663 $ touch init
1664 1664 $ hg ci -A -m "init, unrelated"
1665 1665 adding init
1666 1666 $ echo 'foo' > init
1667 1667 $ hg ci -m "change, unrelated"
1668 1668 $ echo 'foo' > foo
1669 1669 $ hg ci -A -m "add unrelated old foo"
1670 1670 adding foo
1671 1671 $ hg rm foo
1672 1672 $ hg ci -m "delete foo, unrelated"
1673 1673 $ echo 'related' > foo
1674 1674 $ hg ci -A -m "add foo, related"
1675 1675 adding foo
1676 1676
1677 1677 $ hg up 0
1678 1678 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1679 1679 $ touch branch
1680 1680 $ hg ci -A -m "first branch, unrelated"
1681 1681 adding branch
1682 1682 created new head
1683 1683 $ touch foo
1684 1684 $ hg ci -A -m "create foo, related"
1685 1685 adding foo
1686 1686 $ echo 'change' > foo
1687 1687 $ hg ci -m "change foo, related"
1688 1688
1689 1689 $ hg up 6
1690 1690 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1691 1691 $ echo 'change foo in branch' > foo
1692 1692 $ hg ci -m "change foo in branch, related"
1693 1693 created new head
1694 1694 $ hg merge 7
1695 1695 merging foo
1696 1696 warning: conflicts while merging foo! (edit, then use 'hg resolve --mark')
1697 1697 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
1698 1698 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
1699 1699 [1]
1700 1700 $ echo 'merge 1' > foo
1701 1701 $ hg resolve -m foo
1702 1702 (no more unresolved files)
1703 1703 $ hg ci -m "First merge, related"
1704 1704
1705 1705 $ hg merge 4
1706 1706 merging foo
1707 1707 warning: conflicts while merging foo! (edit, then use 'hg resolve --mark')
1708 1708 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
1709 1709 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
1710 1710 [1]
1711 1711 $ echo 'merge 2' > foo
1712 1712 $ hg resolve -m foo
1713 1713 (no more unresolved files)
1714 1714 $ hg ci -m "Last merge, related"
1715 1715
1716 1716 $ hg log --graph
1717 1717 @ changeset: 10:4dae8563d2c5
1718 1718 |\ tag: tip
1719 1719 | | parent: 9:7b35701b003e
1720 1720 | | parent: 4:88176d361b69
1721 1721 | | user: test
1722 1722 | | date: Thu Jan 01 00:00:00 1970 +0000
1723 1723 | | summary: Last merge, related
1724 1724 | |
1725 1725 | o changeset: 9:7b35701b003e
1726 1726 | |\ parent: 8:e5416ad8a855
1727 1727 | | | parent: 7:87fe3144dcfa
1728 1728 | | | user: test
1729 1729 | | | date: Thu Jan 01 00:00:00 1970 +0000
1730 1730 | | | summary: First merge, related
1731 1731 | | |
1732 1732 | | o changeset: 8:e5416ad8a855
1733 1733 | | | parent: 6:dc6c325fe5ee
1734 1734 | | | user: test
1735 1735 | | | date: Thu Jan 01 00:00:00 1970 +0000
1736 1736 | | | summary: change foo in branch, related
1737 1737 | | |
1738 1738 | o | changeset: 7:87fe3144dcfa
1739 1739 | |/ user: test
1740 1740 | | date: Thu Jan 01 00:00:00 1970 +0000
1741 1741 | | summary: change foo, related
1742 1742 | |
1743 1743 | o changeset: 6:dc6c325fe5ee
1744 1744 | | user: test
1745 1745 | | date: Thu Jan 01 00:00:00 1970 +0000
1746 1746 | | summary: create foo, related
1747 1747 | |
1748 1748 | o changeset: 5:73db34516eb9
1749 1749 | | parent: 0:e87515fd044a
1750 1750 | | user: test
1751 1751 | | date: Thu Jan 01 00:00:00 1970 +0000
1752 1752 | | summary: first branch, unrelated
1753 1753 | |
1754 1754 o | changeset: 4:88176d361b69
1755 1755 | | user: test
1756 1756 | | date: Thu Jan 01 00:00:00 1970 +0000
1757 1757 | | summary: add foo, related
1758 1758 | |
1759 1759 o | changeset: 3:dd78ae4afb56
1760 1760 | | user: test
1761 1761 | | date: Thu Jan 01 00:00:00 1970 +0000
1762 1762 | | summary: delete foo, unrelated
1763 1763 | |
1764 1764 o | changeset: 2:c4c64aedf0f7
1765 1765 | | user: test
1766 1766 | | date: Thu Jan 01 00:00:00 1970 +0000
1767 1767 | | summary: add unrelated old foo
1768 1768 | |
1769 1769 o | changeset: 1:e5faa7440653
1770 1770 |/ user: test
1771 1771 | date: Thu Jan 01 00:00:00 1970 +0000
1772 1772 | summary: change, unrelated
1773 1773 |
1774 1774 o changeset: 0:e87515fd044a
1775 1775 user: test
1776 1776 date: Thu Jan 01 00:00:00 1970 +0000
1777 1777 summary: init, unrelated
1778 1778
1779 1779
1780 1780 $ hg --traceback log -f foo
1781 1781 changeset: 10:4dae8563d2c5
1782 1782 tag: tip
1783 1783 parent: 9:7b35701b003e
1784 1784 parent: 4:88176d361b69
1785 1785 user: test
1786 1786 date: Thu Jan 01 00:00:00 1970 +0000
1787 1787 summary: Last merge, related
1788 1788
1789 1789 changeset: 9:7b35701b003e
1790 1790 parent: 8:e5416ad8a855
1791 1791 parent: 7:87fe3144dcfa
1792 1792 user: test
1793 1793 date: Thu Jan 01 00:00:00 1970 +0000
1794 1794 summary: First merge, related
1795 1795
1796 1796 changeset: 8:e5416ad8a855
1797 1797 parent: 6:dc6c325fe5ee
1798 1798 user: test
1799 1799 date: Thu Jan 01 00:00:00 1970 +0000
1800 1800 summary: change foo in branch, related
1801 1801
1802 1802 changeset: 7:87fe3144dcfa
1803 1803 user: test
1804 1804 date: Thu Jan 01 00:00:00 1970 +0000
1805 1805 summary: change foo, related
1806 1806
1807 1807 changeset: 6:dc6c325fe5ee
1808 1808 user: test
1809 1809 date: Thu Jan 01 00:00:00 1970 +0000
1810 1810 summary: create foo, related
1811 1811
1812 1812 changeset: 4:88176d361b69
1813 1813 user: test
1814 1814 date: Thu Jan 01 00:00:00 1970 +0000
1815 1815 summary: add foo, related
1816 1816
1817 1817
1818 1818 Also check when maxrev < lastrevfilelog
1819 1819
1820 1820 $ hg --traceback log -f -r4 foo
1821 1821 changeset: 4:88176d361b69
1822 1822 user: test
1823 1823 date: Thu Jan 01 00:00:00 1970 +0000
1824 1824 summary: add foo, related
1825 1825
1826 1826 $ cd ..
1827 1827
1828 1828 Issue2383: hg log showing _less_ differences than hg diff
1829 1829
1830 1830 $ hg init issue2383
1831 1831 $ cd issue2383
1832 1832
1833 1833 Create a test repo:
1834 1834
1835 1835 $ echo a > a
1836 1836 $ hg ci -Am0
1837 1837 adding a
1838 1838 $ echo b > b
1839 1839 $ hg ci -Am1
1840 1840 adding b
1841 1841 $ hg co 0
1842 1842 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1843 1843 $ echo b > a
1844 1844 $ hg ci -m2
1845 1845 created new head
1846 1846
1847 1847 Merge:
1848 1848
1849 1849 $ hg merge
1850 1850 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1851 1851 (branch merge, don't forget to commit)
1852 1852
1853 1853 Make sure there's a file listed in the merge to trigger the bug:
1854 1854
1855 1855 $ echo c > a
1856 1856 $ hg ci -m3
1857 1857
1858 1858 Two files shown here in diff:
1859 1859
1860 1860 $ hg diff --rev 2:3
1861 1861 diff -r b09be438c43a -r 8e07aafe1edc a
1862 1862 --- a/a Thu Jan 01 00:00:00 1970 +0000
1863 1863 +++ b/a Thu Jan 01 00:00:00 1970 +0000
1864 1864 @@ -1,1 +1,1 @@
1865 1865 -b
1866 1866 +c
1867 1867 diff -r b09be438c43a -r 8e07aafe1edc b
1868 1868 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1869 1869 +++ b/b Thu Jan 01 00:00:00 1970 +0000
1870 1870 @@ -0,0 +1,1 @@
1871 1871 +b
1872 1872
1873 1873 Diff here should be the same:
1874 1874
1875 1875 $ hg log -vpr 3
1876 1876 changeset: 3:8e07aafe1edc
1877 1877 tag: tip
1878 1878 parent: 2:b09be438c43a
1879 1879 parent: 1:925d80f479bb
1880 1880 user: test
1881 1881 date: Thu Jan 01 00:00:00 1970 +0000
1882 1882 files: a
1883 1883 description:
1884 1884 3
1885 1885
1886 1886
1887 1887 diff -r b09be438c43a -r 8e07aafe1edc a
1888 1888 --- a/a Thu Jan 01 00:00:00 1970 +0000
1889 1889 +++ b/a Thu Jan 01 00:00:00 1970 +0000
1890 1890 @@ -1,1 +1,1 @@
1891 1891 -b
1892 1892 +c
1893 1893 diff -r b09be438c43a -r 8e07aafe1edc b
1894 1894 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1895 1895 +++ b/b Thu Jan 01 00:00:00 1970 +0000
1896 1896 @@ -0,0 +1,1 @@
1897 1897 +b
1898 1898
1899 1899 $ cd ..
1900 1900
1901 1901 'hg log -r rev fn' when last(filelog(fn)) != rev
1902 1902
1903 1903 $ hg init simplelog
1904 1904 $ cd simplelog
1905 1905 $ echo f > a
1906 1906 $ hg ci -Am'a' -d '0 0'
1907 1907 adding a
1908 1908 $ echo f >> a
1909 1909 $ hg ci -Am'a bis' -d '1 0'
1910 1910
1911 1911 $ hg log -r0 a
1912 1912 changeset: 0:9f758d63dcde
1913 1913 user: test
1914 1914 date: Thu Jan 01 00:00:00 1970 +0000
1915 1915 summary: a
1916 1916
1917 1917 enable obsolete to test hidden feature
1918 1918
1919 1919 $ cat >> $HGRCPATH << EOF
1920 1920 > [experimental]
1921 1921 > evolution.createmarkers=True
1922 1922 > EOF
1923 1923
1924 1924 $ hg log --template='{rev}:{node}\n'
1925 1925 1:a765632148dc55d38c35c4f247c618701886cb2f
1926 1926 0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
1927 1927 $ hg debugobsolete a765632148dc55d38c35c4f247c618701886cb2f
1928 1928 obsoleted 1 changesets
1929 1929 $ hg up null -q
1930 1930 $ hg log --template='{rev}:{node}\n'
1931 1931 0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
1932 1932 $ hg log --template='{rev}:{node}\n' --hidden
1933 1933 1:a765632148dc55d38c35c4f247c618701886cb2f
1934 1934 0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
1935 1935 $ hg log -r a
1936 1936 abort: hidden revision 'a' is pruned!
1937 1937 (use --hidden to access hidden revisions)
1938 1938 [255]
1939 1939
1940 1940 test that parent prevent a changeset to be hidden
1941 1941
1942 1942 $ hg up 1 -q --hidden
1943 1943 updating to a hidden changeset a765632148dc
1944 1944 (hidden revision 'a765632148dc' is pruned)
1945 1945 $ hg log --template='{rev}:{node}\n'
1946 1946 1:a765632148dc55d38c35c4f247c618701886cb2f
1947 1947 0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
1948 1948
1949 1949 test that second parent prevent a changeset to be hidden too
1950 1950
1951 1951 $ hg debugsetparents 0 1 # nothing suitable to merge here
1952 1952 $ hg log --template='{rev}:{node}\n'
1953 1953 1:a765632148dc55d38c35c4f247c618701886cb2f
1954 1954 0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
1955 1955 $ hg debugsetparents 1
1956 1956 $ hg up -q null
1957 1957
1958 1958 bookmarks prevent a changeset being hidden
1959 1959
1960 1960 $ hg bookmark --hidden -r 1 X
1961 1961 bookmarking hidden changeset a765632148dc
1962 1962 (hidden revision 'a765632148dc' is pruned)
1963 1963 $ hg log --template '{rev}:{node}\n'
1964 1964 1:a765632148dc55d38c35c4f247c618701886cb2f
1965 1965 0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
1966 1966 $ hg bookmark -d X
1967 1967
1968 1968 divergent bookmarks are not hidden
1969 1969
1970 1970 $ hg bookmark --hidden -r 1 X@foo
1971 1971 bookmarking hidden changeset a765632148dc
1972 1972 (hidden revision 'a765632148dc' is pruned)
1973 1973 $ hg log --template '{rev}:{node}\n'
1974 1974 1:a765632148dc55d38c35c4f247c618701886cb2f
1975 1975 0:9f758d63dcde62d547ebfb08e1e7ee96535f2b05
1976 1976
1977 1977 test hidden revision 0 (issue5385)
1978 1978
1979 1979 $ hg bookmark -d X@foo
1980 1980 $ hg up null -q
1981 1981 $ hg debugobsolete 9f758d63dcde62d547ebfb08e1e7ee96535f2b05
1982 1982 obsoleted 1 changesets
1983 1983 $ echo f > b
1984 1984 $ hg ci -Am'b' -d '2 0'
1985 1985 adding b
1986 1986 $ echo f >> b
1987 1987 $ hg ci -m'b bis' -d '3 0'
1988 1988 $ hg log -T'{rev}:{node}\n'
1989 1989 3:d7d28b288a6b83d5d2cf49f10c5974deed3a1d2e
1990 1990 2:94375ec45bddd2a824535fc04855bd058c926ec0
1991 1991
1992 1992 $ hg log -T'{rev}:{node}\n' -r:
1993 1993 2:94375ec45bddd2a824535fc04855bd058c926ec0
1994 1994 3:d7d28b288a6b83d5d2cf49f10c5974deed3a1d2e
1995 1995 $ hg log -T'{rev}:{node}\n' -r:tip
1996 1996 2:94375ec45bddd2a824535fc04855bd058c926ec0
1997 1997 3:d7d28b288a6b83d5d2cf49f10c5974deed3a1d2e
1998 1998 $ hg log -T'{rev}:{node}\n' -r:0
1999 1999 abort: hidden revision '0' is pruned!
2000 2000 (use --hidden to access hidden revisions)
2001 2001 [255]
2002 2002 $ hg log -T'{rev}:{node}\n' -f
2003 2003 3:d7d28b288a6b83d5d2cf49f10c5974deed3a1d2e
2004 2004 2:94375ec45bddd2a824535fc04855bd058c926ec0
2005 2005
2006 2006 clear extensions configuration
2007 2007 $ echo '[extensions]' >> $HGRCPATH
2008 2008 $ echo "obs=!" >> $HGRCPATH
2009 2009 $ cd ..
2010 2010
2011 2011 test -u/-k for problematic encoding
2012 2012 # unicode: cp932:
2013 2013 # u30A2 0x83 0x41(= 'A')
2014 2014 # u30C2 0x83 0x61(= 'a')
2015 2015
2016 2016 $ hg init problematicencoding
2017 2017 $ cd problematicencoding
2018 2018
2019 $ $PYTHON > setup.sh <<EOF
2020 > print(u'''
2021 > echo a > text
2022 > hg add text
2023 > hg --encoding utf-8 commit -u '\u30A2' -m none
2024 > echo b > text
2025 > hg --encoding utf-8 commit -u '\u30C2' -m none
2026 > echo c > text
2027 > hg --encoding utf-8 commit -u none -m '\u30A2'
2028 > echo d > text
2029 > hg --encoding utf-8 commit -u none -m '\u30C2'
2030 > '''.encode('utf-8'))
2031 > EOF
2019 >>> with open('setup.sh', 'wb') as f:
2020 ... f.write(u'''
2021 ... echo a > text
2022 ... hg add text
2023 ... hg --encoding utf-8 commit -u '\u30A2' -m none
2024 ... echo b > text
2025 ... hg --encoding utf-8 commit -u '\u30C2' -m none
2026 ... echo c > text
2027 ... hg --encoding utf-8 commit -u none -m '\u30A2'
2028 ... echo d > text
2029 ... hg --encoding utf-8 commit -u none -m '\u30C2'
2030 ... '''.encode('utf-8')) and None
2032 2031 $ sh < setup.sh
2033 2032
2034 2033 test in problematic encoding
2035 $ $PYTHON > test.sh <<EOF
2036 > print(u'''
2037 > hg --encoding cp932 log --template '{rev}\\n' -u '\u30A2'
2038 > echo ====
2039 > hg --encoding cp932 log --template '{rev}\\n' -u '\u30C2'
2040 > echo ====
2041 > hg --encoding cp932 log --template '{rev}\\n' -k '\u30A2'
2042 > echo ====
2043 > hg --encoding cp932 log --template '{rev}\\n' -k '\u30C2'
2044 > '''.encode('cp932'))
2045 > EOF
2034 >>> with open('test.sh', 'wb') as f:
2035 ... f.write(u'''
2036 ... hg --encoding cp932 log --template '{rev}\\n' -u '\u30A2'
2037 ... echo ====
2038 ... hg --encoding cp932 log --template '{rev}\\n' -u '\u30C2'
2039 ... echo ====
2040 ... hg --encoding cp932 log --template '{rev}\\n' -k '\u30A2'
2041 ... echo ====
2042 ... hg --encoding cp932 log --template '{rev}\\n' -k '\u30C2'
2043 ... '''.encode('cp932')) and None
2046 2044 $ sh < test.sh
2047 2045 0
2048 2046 ====
2049 2047 1
2050 2048 ====
2051 2049 2
2052 2050 0
2053 2051 ====
2054 2052 3
2055 2053 1
2056 2054
2057 2055 $ cd ..
2058 2056
2059 2057 test hg log on non-existent files and on directories
2060 2058 $ hg init issue1340
2061 2059 $ cd issue1340
2062 2060 $ mkdir d1; mkdir D2; mkdir D3.i; mkdir d4.hg; mkdir d5.d; mkdir .d6
2063 2061 $ echo 1 > d1/f1
2064 2062 $ echo 1 > D2/f1
2065 2063 $ echo 1 > D3.i/f1
2066 2064 $ echo 1 > d4.hg/f1
2067 2065 $ echo 1 > d5.d/f1
2068 2066 $ echo 1 > .d6/f1
2069 2067 $ hg -q add .
2070 2068 $ hg commit -m "a bunch of weird directories"
2071 2069 $ hg log -l1 d1/f1 | grep changeset
2072 2070 changeset: 0:65624cd9070a
2073 2071 $ hg log -l1 f1
2074 2072 $ hg log -l1 . | grep changeset
2075 2073 changeset: 0:65624cd9070a
2076 2074 $ hg log -l1 ./ | grep changeset
2077 2075 changeset: 0:65624cd9070a
2078 2076 $ hg log -l1 d1 | grep changeset
2079 2077 changeset: 0:65624cd9070a
2080 2078 $ hg log -l1 D2 | grep changeset
2081 2079 changeset: 0:65624cd9070a
2082 2080 $ hg log -l1 D2/f1 | grep changeset
2083 2081 changeset: 0:65624cd9070a
2084 2082 $ hg log -l1 D3.i | grep changeset
2085 2083 changeset: 0:65624cd9070a
2086 2084 $ hg log -l1 D3.i/f1 | grep changeset
2087 2085 changeset: 0:65624cd9070a
2088 2086 $ hg log -l1 d4.hg | grep changeset
2089 2087 changeset: 0:65624cd9070a
2090 2088 $ hg log -l1 d4.hg/f1 | grep changeset
2091 2089 changeset: 0:65624cd9070a
2092 2090 $ hg log -l1 d5.d | grep changeset
2093 2091 changeset: 0:65624cd9070a
2094 2092 $ hg log -l1 d5.d/f1 | grep changeset
2095 2093 changeset: 0:65624cd9070a
2096 2094 $ hg log -l1 .d6 | grep changeset
2097 2095 changeset: 0:65624cd9070a
2098 2096 $ hg log -l1 .d6/f1 | grep changeset
2099 2097 changeset: 0:65624cd9070a
2100 2098
2101 2099 issue3772: hg log -r :null showing revision 0 as well
2102 2100
2103 2101 $ hg log -r :null
2104 2102 changeset: 0:65624cd9070a
2105 2103 tag: tip
2106 2104 user: test
2107 2105 date: Thu Jan 01 00:00:00 1970 +0000
2108 2106 summary: a bunch of weird directories
2109 2107
2110 2108 changeset: -1:000000000000
2111 2109 user:
2112 2110 date: Thu Jan 01 00:00:00 1970 +0000
2113 2111
2114 2112 $ hg log -r null:null
2115 2113 changeset: -1:000000000000
2116 2114 user:
2117 2115 date: Thu Jan 01 00:00:00 1970 +0000
2118 2116
2119 2117 working-directory revision requires special treatment
2120 2118
2121 2119 clean:
2122 2120
2123 2121 $ hg log -r 'wdir()' --debug
2124 2122 changeset: 2147483647:ffffffffffffffffffffffffffffffffffffffff
2125 2123 phase: draft
2126 2124 parent: 0:65624cd9070a035fa7191a54f2b8af39f16b0c08
2127 2125 parent: -1:0000000000000000000000000000000000000000
2128 2126 user: test
2129 2127 date: [A-Za-z0-9:+ ]+ (re)
2130 2128 extra: branch=default
2131 2129
2132 2130 $ hg log -r 'wdir()' -p --stat
2133 2131 changeset: 2147483647:ffffffffffff
2134 2132 parent: 0:65624cd9070a
2135 2133 user: test
2136 2134 date: [A-Za-z0-9:+ ]+ (re)
2137 2135
2138 2136
2139 2137
2140 2138
2141 2139 dirty:
2142 2140
2143 2141 $ echo 2 >> d1/f1
2144 2142 $ echo 2 > d1/f2
2145 2143 $ hg add d1/f2
2146 2144 $ hg remove .d6/f1
2147 2145 $ hg status
2148 2146 M d1/f1
2149 2147 A d1/f2
2150 2148 R .d6/f1
2151 2149
2152 2150 $ hg log -r 'wdir()'
2153 2151 changeset: 2147483647:ffffffffffff
2154 2152 parent: 0:65624cd9070a
2155 2153 user: test
2156 2154 date: [A-Za-z0-9:+ ]+ (re)
2157 2155
2158 2156 $ hg log -r 'wdir()' -q
2159 2157 2147483647:ffffffffffff
2160 2158
2161 2159 $ hg log -r 'wdir()' --debug
2162 2160 changeset: 2147483647:ffffffffffffffffffffffffffffffffffffffff
2163 2161 phase: draft
2164 2162 parent: 0:65624cd9070a035fa7191a54f2b8af39f16b0c08
2165 2163 parent: -1:0000000000000000000000000000000000000000
2166 2164 user: test
2167 2165 date: [A-Za-z0-9:+ ]+ (re)
2168 2166 files: d1/f1
2169 2167 files+: d1/f2
2170 2168 files-: .d6/f1
2171 2169 extra: branch=default
2172 2170
2173 2171 $ hg log -r 'wdir()' -p --stat --git
2174 2172 changeset: 2147483647:ffffffffffff
2175 2173 parent: 0:65624cd9070a
2176 2174 user: test
2177 2175 date: [A-Za-z0-9:+ ]+ (re)
2178 2176
2179 2177 .d6/f1 | 1 -
2180 2178 d1/f1 | 1 +
2181 2179 d1/f2 | 1 +
2182 2180 3 files changed, 2 insertions(+), 1 deletions(-)
2183 2181
2184 2182 diff --git a/.d6/f1 b/.d6/f1
2185 2183 deleted file mode 100644
2186 2184 --- a/.d6/f1
2187 2185 +++ /dev/null
2188 2186 @@ -1,1 +0,0 @@
2189 2187 -1
2190 2188 diff --git a/d1/f1 b/d1/f1
2191 2189 --- a/d1/f1
2192 2190 +++ b/d1/f1
2193 2191 @@ -1,1 +1,2 @@
2194 2192 1
2195 2193 +2
2196 2194 diff --git a/d1/f2 b/d1/f2
2197 2195 new file mode 100644
2198 2196 --- /dev/null
2199 2197 +++ b/d1/f2
2200 2198 @@ -0,0 +1,1 @@
2201 2199 +2
2202 2200
2203 2201 $ hg log -r 'wdir()' -Tjson
2204 2202 [
2205 2203 {
2206 2204 "rev": null,
2207 2205 "node": null,
2208 2206 "branch": "default",
2209 2207 "phase": "draft",
2210 2208 "user": "test",
2211 2209 "date": [*, 0], (glob)
2212 2210 "desc": "",
2213 2211 "bookmarks": [],
2214 2212 "tags": [],
2215 2213 "parents": ["65624cd9070a035fa7191a54f2b8af39f16b0c08"]
2216 2214 }
2217 2215 ]
2218 2216
2219 2217 $ hg log -r 'wdir()' -Tjson -q
2220 2218 [
2221 2219 {
2222 2220 "rev": null,
2223 2221 "node": null
2224 2222 }
2225 2223 ]
2226 2224
2227 2225 $ hg log -r 'wdir()' -Tjson --debug
2228 2226 [
2229 2227 {
2230 2228 "rev": null,
2231 2229 "node": null,
2232 2230 "branch": "default",
2233 2231 "phase": "draft",
2234 2232 "user": "test",
2235 2233 "date": [*, 0], (glob)
2236 2234 "desc": "",
2237 2235 "bookmarks": [],
2238 2236 "tags": [],
2239 2237 "parents": ["65624cd9070a035fa7191a54f2b8af39f16b0c08"],
2240 2238 "manifest": null,
2241 2239 "extra": {"branch": "default"},
2242 2240 "modified": ["d1/f1"],
2243 2241 "added": ["d1/f2"],
2244 2242 "removed": [".d6/f1"]
2245 2243 }
2246 2244 ]
2247 2245
2248 2246 $ hg revert -aqC
2249 2247
2250 2248 Check that adding an arbitrary name shows up in log automatically
2251 2249
2252 2250 $ cat > ../names.py <<EOF
2253 2251 > """A small extension to test adding arbitrary names to a repo"""
2254 2252 > from __future__ import absolute_import
2255 2253 > from mercurial import namespaces
2256 2254 >
2257 2255 > def reposetup(ui, repo):
2258 > foo = {'foo': repo[0].node()}
2256 > foo = {b'foo': repo[0].node()}
2259 2257 > names = lambda r: foo.keys()
2260 2258 > namemap = lambda r, name: foo.get(name)
2261 2259 > nodemap = lambda r, node: [name for name, n in foo.items()
2262 2260 > if n == node]
2263 2261 > ns = namespaces.namespace(
2264 > "bars", templatename="bar", logname="barlog",
2265 > colorname="barcolor", listnames=names, namemap=namemap,
2262 > b"bars", templatename=b"bar", logname=b"barlog",
2263 > colorname=b"barcolor", listnames=names, namemap=namemap,
2266 2264 > nodemap=nodemap)
2267 2265 >
2268 2266 > repo.names.addnamespace(ns)
2269 2267 > EOF
2270 2268
2271 2269 $ hg --config extensions.names=../names.py log -r 0
2272 2270 changeset: 0:65624cd9070a
2273 2271 tag: tip
2274 2272 barlog: foo
2275 2273 user: test
2276 2274 date: Thu Jan 01 00:00:00 1970 +0000
2277 2275 summary: a bunch of weird directories
2278 2276
2279 2277 $ hg --config extensions.names=../names.py \
2280 2278 > --config extensions.color= --config color.log.barcolor=red \
2281 2279 > --color=always log -r 0
2282 2280 \x1b[0;33mchangeset: 0:65624cd9070a\x1b[0m (esc)
2283 2281 tag: tip
2284 2282 \x1b[0;31mbarlog: foo\x1b[0m (esc)
2285 2283 user: test
2286 2284 date: Thu Jan 01 00:00:00 1970 +0000
2287 2285 summary: a bunch of weird directories
2288 2286
2289 2287 $ hg --config extensions.names=../names.py log -r 0 --template '{bars}\n'
2290 2288 foo
2291 2289
2292 2290 Templater parse errors:
2293 2291
2294 2292 simple error
2295 2293 $ hg log -r . -T '{shortest(node}'
2296 2294 hg: parse error at 14: unexpected token: end
2297 2295 ({shortest(node}
2298 2296 ^ here)
2299 2297 [255]
2300 2298
2301 2299 multi-line template with error
2302 2300 $ hg log -r . -T 'line 1
2303 2301 > line2
2304 2302 > {shortest(node}
2305 2303 > line4\nline5'
2306 2304 hg: parse error at 27: unexpected token: end
2307 2305 (line 1\nline2\n{shortest(node}\nline4\nline5
2308 2306 ^ here)
2309 2307 [255]
2310 2308
2311 2309 $ cd ..
2312 2310
2313 2311 hg log -f dir across branches
2314 2312
2315 2313 $ hg init acrossbranches
2316 2314 $ cd acrossbranches
2317 2315 $ mkdir d
2318 2316 $ echo a > d/a && hg ci -Aqm a
2319 2317 $ echo b > d/a && hg ci -Aqm b
2320 2318 $ hg up -q 0
2321 2319 $ echo b > d/a && hg ci -Aqm c
2322 2320 $ hg log -f d -T '{desc}' -G
2323 2321 @ c
2324 2322 |
2325 2323 o a
2326 2324
2327 2325 Ensure that largefiles doesn't interfere with following a normal file
2328 2326 $ hg --config extensions.largefiles= log -f d -T '{desc}' -G
2329 2327 The fsmonitor extension is incompatible with the largefiles extension and has been disabled. (fsmonitor !)
2330 2328 @ c
2331 2329 |
2332 2330 o a
2333 2331
2334 2332 $ hg log -f d/a -T '{desc}' -G
2335 2333 @ c
2336 2334 |
2337 2335 o a
2338 2336
2339 2337 $ cd ..
2340 2338
2341 2339 hg log -f with linkrev pointing to another branch
2342 2340 -------------------------------------------------
2343 2341
2344 2342 create history with a filerev whose linkrev points to another branch
2345 2343
2346 2344 $ hg init branchedlinkrev
2347 2345 $ cd branchedlinkrev
2348 2346 $ echo 1 > a
2349 2347 $ hg commit -Am 'content1'
2350 2348 adding a
2351 2349 $ echo 2 > a
2352 2350 $ hg commit -m 'content2'
2353 2351 $ hg up --rev 'desc(content1)'
2354 2352 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2355 2353 $ echo unrelated > unrelated
2356 2354 $ hg commit -Am 'unrelated'
2357 2355 adding unrelated
2358 2356 created new head
2359 2357 $ hg graft -r 'desc(content2)'
2360 2358 grafting 1:2294ae80ad84 "content2"
2361 2359 $ echo 3 > a
2362 2360 $ hg commit -m 'content3'
2363 2361 $ hg log -G
2364 2362 @ changeset: 4:50b9b36e9c5d
2365 2363 | tag: tip
2366 2364 | user: test
2367 2365 | date: Thu Jan 01 00:00:00 1970 +0000
2368 2366 | summary: content3
2369 2367 |
2370 2368 o changeset: 3:15b2327059e5
2371 2369 | user: test
2372 2370 | date: Thu Jan 01 00:00:00 1970 +0000
2373 2371 | summary: content2
2374 2372 |
2375 2373 o changeset: 2:2029acd1168c
2376 2374 | parent: 0:ae0a3c9f9e95
2377 2375 | user: test
2378 2376 | date: Thu Jan 01 00:00:00 1970 +0000
2379 2377 | summary: unrelated
2380 2378 |
2381 2379 | o changeset: 1:2294ae80ad84
2382 2380 |/ user: test
2383 2381 | date: Thu Jan 01 00:00:00 1970 +0000
2384 2382 | summary: content2
2385 2383 |
2386 2384 o changeset: 0:ae0a3c9f9e95
2387 2385 user: test
2388 2386 date: Thu Jan 01 00:00:00 1970 +0000
2389 2387 summary: content1
2390 2388
2391 2389
2392 2390 log -f on the file should list the graft result.
2393 2391
2394 2392 $ hg log -Gf a
2395 2393 @ changeset: 4:50b9b36e9c5d
2396 2394 | tag: tip
2397 2395 | user: test
2398 2396 | date: Thu Jan 01 00:00:00 1970 +0000
2399 2397 | summary: content3
2400 2398 |
2401 2399 o changeset: 3:15b2327059e5
2402 2400 : user: test
2403 2401 : date: Thu Jan 01 00:00:00 1970 +0000
2404 2402 : summary: content2
2405 2403 :
2406 2404 o changeset: 0:ae0a3c9f9e95
2407 2405 user: test
2408 2406 date: Thu Jan 01 00:00:00 1970 +0000
2409 2407 summary: content1
2410 2408
2411 2409
2412 2410 plain log lists the original version
2413 2411 (XXX we should probably list both)
2414 2412
2415 2413 $ hg log -G a
2416 2414 @ changeset: 4:50b9b36e9c5d
2417 2415 : tag: tip
2418 2416 : user: test
2419 2417 : date: Thu Jan 01 00:00:00 1970 +0000
2420 2418 : summary: content3
2421 2419 :
2422 2420 : o changeset: 1:2294ae80ad84
2423 2421 :/ user: test
2424 2422 : date: Thu Jan 01 00:00:00 1970 +0000
2425 2423 : summary: content2
2426 2424 :
2427 2425 o changeset: 0:ae0a3c9f9e95
2428 2426 user: test
2429 2427 date: Thu Jan 01 00:00:00 1970 +0000
2430 2428 summary: content1
2431 2429
2432 2430
2433 2431 hg log -f from the grafted changeset
2434 2432 (The bootstrap should properly take the topology in account)
2435 2433
2436 2434 $ hg up 'desc(content3)^'
2437 2435 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2438 2436 $ hg log -Gf a
2439 2437 @ changeset: 3:15b2327059e5
2440 2438 : user: test
2441 2439 : date: Thu Jan 01 00:00:00 1970 +0000
2442 2440 : summary: content2
2443 2441 :
2444 2442 o changeset: 0:ae0a3c9f9e95
2445 2443 user: test
2446 2444 date: Thu Jan 01 00:00:00 1970 +0000
2447 2445 summary: content1
2448 2446
2449 2447
2450 2448 Test that we use the first non-hidden changeset in that case.
2451 2449
2452 2450 (hide the changeset)
2453 2451
2454 2452 $ hg log -T '{node}\n' -r 1
2455 2453 2294ae80ad8447bc78383182eeac50cb049df623
2456 2454 $ hg debugobsolete 2294ae80ad8447bc78383182eeac50cb049df623
2457 2455 obsoleted 1 changesets
2458 2456 $ hg log -G
2459 2457 o changeset: 4:50b9b36e9c5d
2460 2458 | tag: tip
2461 2459 | user: test
2462 2460 | date: Thu Jan 01 00:00:00 1970 +0000
2463 2461 | summary: content3
2464 2462 |
2465 2463 @ changeset: 3:15b2327059e5
2466 2464 | user: test
2467 2465 | date: Thu Jan 01 00:00:00 1970 +0000
2468 2466 | summary: content2
2469 2467 |
2470 2468 o changeset: 2:2029acd1168c
2471 2469 | parent: 0:ae0a3c9f9e95
2472 2470 | user: test
2473 2471 | date: Thu Jan 01 00:00:00 1970 +0000
2474 2472 | summary: unrelated
2475 2473 |
2476 2474 o changeset: 0:ae0a3c9f9e95
2477 2475 user: test
2478 2476 date: Thu Jan 01 00:00:00 1970 +0000
2479 2477 summary: content1
2480 2478
2481 2479
2482 2480 Check that log on the file does not drop the file revision.
2483 2481
2484 2482 $ hg log -G a
2485 2483 o changeset: 4:50b9b36e9c5d
2486 2484 | tag: tip
2487 2485 | user: test
2488 2486 | date: Thu Jan 01 00:00:00 1970 +0000
2489 2487 | summary: content3
2490 2488 |
2491 2489 @ changeset: 3:15b2327059e5
2492 2490 : user: test
2493 2491 : date: Thu Jan 01 00:00:00 1970 +0000
2494 2492 : summary: content2
2495 2493 :
2496 2494 o changeset: 0:ae0a3c9f9e95
2497 2495 user: test
2498 2496 date: Thu Jan 01 00:00:00 1970 +0000
2499 2497 summary: content1
2500 2498
2501 2499
2502 2500 Even when a head revision is linkrev-shadowed.
2503 2501
2504 2502 $ hg log -T '{node}\n' -r 4
2505 2503 50b9b36e9c5df2c6fc6dcefa8ad0da929e84aed2
2506 2504 $ hg debugobsolete 50b9b36e9c5df2c6fc6dcefa8ad0da929e84aed2
2507 2505 obsoleted 1 changesets
2508 2506 $ hg log -G a
2509 2507 @ changeset: 3:15b2327059e5
2510 2508 : tag: tip
2511 2509 : user: test
2512 2510 : date: Thu Jan 01 00:00:00 1970 +0000
2513 2511 : summary: content2
2514 2512 :
2515 2513 o changeset: 0:ae0a3c9f9e95
2516 2514 user: test
2517 2515 date: Thu Jan 01 00:00:00 1970 +0000
2518 2516 summary: content1
2519 2517
2520 2518
2521 2519 $ cd ..
2522 2520
2523 2521 Even when the file revision is missing from some head:
2524 2522
2525 2523 $ hg init issue4490
2526 2524 $ cd issue4490
2527 2525 $ echo '[experimental]' >> .hg/hgrc
2528 2526 $ echo 'evolution.createmarkers=True' >> .hg/hgrc
2529 2527 $ echo a > a
2530 2528 $ hg ci -Am0
2531 2529 adding a
2532 2530 $ echo b > b
2533 2531 $ hg ci -Am1
2534 2532 adding b
2535 2533 $ echo B > b
2536 2534 $ hg ci --amend -m 1
2537 2535 $ hg up 0
2538 2536 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
2539 2537 $ echo c > c
2540 2538 $ hg ci -Am2
2541 2539 adding c
2542 2540 created new head
2543 2541 $ hg up 'head() and not .'
2544 2542 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
2545 2543 $ hg log -G
2546 2544 o changeset: 3:db815d6d32e6
2547 2545 | tag: tip
2548 2546 | parent: 0:f7b1eb17ad24
2549 2547 | user: test
2550 2548 | date: Thu Jan 01 00:00:00 1970 +0000
2551 2549 | summary: 2
2552 2550 |
2553 2551 | @ changeset: 2:9bc8ce7f9356
2554 2552 |/ parent: 0:f7b1eb17ad24
2555 2553 | user: test
2556 2554 | date: Thu Jan 01 00:00:00 1970 +0000
2557 2555 | summary: 1
2558 2556 |
2559 2557 o changeset: 0:f7b1eb17ad24
2560 2558 user: test
2561 2559 date: Thu Jan 01 00:00:00 1970 +0000
2562 2560 summary: 0
2563 2561
2564 2562 $ hg log -f -G b
2565 2563 @ changeset: 2:9bc8ce7f9356
2566 2564 | parent: 0:f7b1eb17ad24
2567 2565 ~ user: test
2568 2566 date: Thu Jan 01 00:00:00 1970 +0000
2569 2567 summary: 1
2570 2568
2571 2569 $ hg log -G b
2572 2570 @ changeset: 2:9bc8ce7f9356
2573 2571 | parent: 0:f7b1eb17ad24
2574 2572 ~ user: test
2575 2573 date: Thu Jan 01 00:00:00 1970 +0000
2576 2574 summary: 1
2577 2575
2578 2576 $ cd ..
2579 2577
2580 2578 Check proper report when the manifest changes but not the file issue4499
2581 2579 ------------------------------------------------------------------------
2582 2580
2583 2581 $ hg init issue4499
2584 2582 $ cd issue4499
2585 2583 $ for f in A B C D F E G H I J K L M N O P Q R S T U; do
2586 2584 > echo 1 > $f;
2587 2585 > hg add $f;
2588 2586 > done
2589 2587 $ hg commit -m 'A1B1C1'
2590 2588 $ echo 2 > A
2591 2589 $ echo 2 > B
2592 2590 $ echo 2 > C
2593 2591 $ hg commit -m 'A2B2C2'
2594 2592 $ hg up 0
2595 2593 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
2596 2594 $ echo 3 > A
2597 2595 $ echo 2 > B
2598 2596 $ echo 2 > C
2599 2597 $ hg commit -m 'A3B2C2'
2600 2598 created new head
2601 2599
2602 2600 $ hg log -G
2603 2601 @ changeset: 2:fe5fc3d0eb17
2604 2602 | tag: tip
2605 2603 | parent: 0:abf4f0e38563
2606 2604 | user: test
2607 2605 | date: Thu Jan 01 00:00:00 1970 +0000
2608 2606 | summary: A3B2C2
2609 2607 |
2610 2608 | o changeset: 1:07dcc6b312c0
2611 2609 |/ user: test
2612 2610 | date: Thu Jan 01 00:00:00 1970 +0000
2613 2611 | summary: A2B2C2
2614 2612 |
2615 2613 o changeset: 0:abf4f0e38563
2616 2614 user: test
2617 2615 date: Thu Jan 01 00:00:00 1970 +0000
2618 2616 summary: A1B1C1
2619 2617
2620 2618
2621 2619 Log -f on B should reports current changesets
2622 2620
2623 2621 $ hg log -fG B
2624 2622 @ changeset: 2:fe5fc3d0eb17
2625 2623 | tag: tip
2626 2624 | parent: 0:abf4f0e38563
2627 2625 | user: test
2628 2626 | date: Thu Jan 01 00:00:00 1970 +0000
2629 2627 | summary: A3B2C2
2630 2628 |
2631 2629 o changeset: 0:abf4f0e38563
2632 2630 user: test
2633 2631 date: Thu Jan 01 00:00:00 1970 +0000
2634 2632 summary: A1B1C1
2635 2633
2636 2634 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now