Show More
@@ -2456,6 +2456,8 b" def debugcomplete(ui, cmd=b'', **opts):" | |||||
2456 | b'diff', |
|
2456 | b'diff', | |
2457 | [ |
|
2457 | [ | |
2458 | (b'r', b'rev', [], _(b'revision'), _(b'REV')), |
|
2458 | (b'r', b'rev', [], _(b'revision'), _(b'REV')), | |
|
2459 | (b'', b'from', b'', _(b'revision to diff from'), _(b'REV')), | |||
|
2460 | (b'', b'to', b'', _(b'revision to diff to'), _(b'REV')), | |||
2459 | (b'c', b'change', b'', _(b'change made by revision'), _(b'REV')), |
|
2461 | (b'c', b'change', b'', _(b'change made by revision'), _(b'REV')), | |
2460 | ] |
|
2462 | ] | |
2461 | + diffopts |
|
2463 | + diffopts | |
@@ -2530,13 +2532,23 b' def diff(ui, repo, *pats, **opts):' | |||||
2530 | opts = pycompat.byteskwargs(opts) |
|
2532 | opts = pycompat.byteskwargs(opts) | |
2531 | revs = opts.get(b'rev') |
|
2533 | revs = opts.get(b'rev') | |
2532 | change = opts.get(b'change') |
|
2534 | change = opts.get(b'change') | |
|
2535 | from_rev = opts.get(b'from') | |||
|
2536 | to_rev = opts.get(b'to') | |||
2533 | stat = opts.get(b'stat') |
|
2537 | stat = opts.get(b'stat') | |
2534 | reverse = opts.get(b'reverse') |
|
2538 | reverse = opts.get(b'reverse') | |
2535 |
|
2539 | |||
|
2540 | cmdutil.check_incompatible_arguments(opts, b'from', [b'rev', b'change']) | |||
|
2541 | cmdutil.check_incompatible_arguments(opts, b'to', [b'rev', b'change']) | |||
2536 | if change: |
|
2542 | if change: | |
2537 | repo = scmutil.unhidehashlikerevs(repo, [change], b'nowarn') |
|
2543 | repo = scmutil.unhidehashlikerevs(repo, [change], b'nowarn') | |
2538 | ctx2 = scmutil.revsingle(repo, change, None) |
|
2544 | ctx2 = scmutil.revsingle(repo, change, None) | |
2539 | ctx1 = ctx2.p1() |
|
2545 | ctx1 = ctx2.p1() | |
|
2546 | elif from_rev or to_rev: | |||
|
2547 | repo = scmutil.unhidehashlikerevs( | |||
|
2548 | repo, [from_rev] + [to_rev], b'nowarn' | |||
|
2549 | ) | |||
|
2550 | ctx1 = scmutil.revsingle(repo, from_rev, None) | |||
|
2551 | ctx2 = scmutil.revsingle(repo, to_rev, None) | |||
2540 | else: |
|
2552 | else: | |
2541 | repo = scmutil.unhidehashlikerevs(repo, revs, b'nowarn') |
|
2553 | repo = scmutil.unhidehashlikerevs(repo, revs, b'nowarn') | |
2542 | ctx1, ctx2 = scmutil.revpair(repo, revs) |
|
2554 | ctx1, ctx2 = scmutil.revpair(repo, revs) |
@@ -20,6 +20,9 b'' | |||||
20 | * `hg strip`, from the strip extension, is now a core command, `hg |
|
20 | * `hg strip`, from the strip extension, is now a core command, `hg | |
21 | debugstrip`. The extension remains for compatibility. |
|
21 | debugstrip`. The extension remains for compatibility. | |
22 |
|
22 | |||
|
23 | * `hg diff` now supports `--from <rev>` and `--to <rev>` arguments as | |||
|
24 | clearer alternatives to `-r <revs>`. | |||
|
25 | ||||
23 | * The memory footprint per changeset during pull/unbundle |
|
26 | * The memory footprint per changeset during pull/unbundle | |
24 | operations has been further reduced. |
|
27 | operations has been further reduced. | |
25 |
|
28 |
@@ -333,7 +333,7 b' Show all commands + options' | |||||
333 | debugwhyunstable: |
|
333 | debugwhyunstable: | |
334 | debugwireargs: three, four, five, ssh, remotecmd, insecure |
|
334 | debugwireargs: three, four, five, ssh, remotecmd, insecure | |
335 | debugwireproto: localssh, peer, noreadstderr, nologhandshake, ssh, remotecmd, insecure |
|
335 | debugwireproto: localssh, peer, noreadstderr, nologhandshake, ssh, remotecmd, insecure | |
336 | diff: rev, change, text, git, binary, nodates, noprefix, show-function, reverse, ignore-all-space, ignore-space-change, ignore-blank-lines, ignore-space-at-eol, unified, stat, root, include, exclude, subrepos |
|
336 | diff: rev, from, to, change, text, git, binary, nodates, noprefix, show-function, reverse, ignore-all-space, ignore-space-change, ignore-blank-lines, ignore-space-at-eol, unified, stat, root, include, exclude, subrepos | |
337 | export: bookmark, output, switch-parent, rev, text, git, binary, nodates, template |
|
337 | export: bookmark, output, switch-parent, rev, text, git, binary, nodates, template | |
338 | files: rev, print0, include, exclude, template, subrepos |
|
338 | files: rev, print0, include, exclude, template, subrepos | |
339 | forget: interactive, include, exclude, dry-run |
|
339 | forget: interactive, include, exclude, dry-run |
@@ -1,4 +1,4 b'' | |||||
1 | Testing diff --change |
|
1 | Testing diff --change, --from, --to | |
2 |
|
2 | |||
3 | $ hg init a |
|
3 | $ hg init a | |
4 | $ cd a |
|
4 | $ cd a | |
@@ -29,6 +29,59 b' Testing diff --change' | |||||
29 | -first |
|
29 | -first | |
30 | +second |
|
30 | +second | |
31 |
|
31 | |||
|
32 | Test --from and --to | |||
|
33 | ||||
|
34 | $ hg diff --from . --rev . | |||
|
35 | abort: cannot specify both --from and --rev | |||
|
36 | [10] | |||
|
37 | $ hg diff --to . --rev . | |||
|
38 | abort: cannot specify both --to and --rev | |||
|
39 | [10] | |||
|
40 | $ hg diff --from . --change . | |||
|
41 | abort: cannot specify both --from and --change | |||
|
42 | [10] | |||
|
43 | $ hg diff --to . --change . | |||
|
44 | abort: cannot specify both --to and --change | |||
|
45 | [10] | |||
|
46 | $ echo dirty > file.txt | |||
|
47 | $ hg diff --from . | |||
|
48 | diff -r bf5ff72eb7e0 file.txt | |||
|
49 | --- a/file.txt Thu Jan 01 00:00:00 1970 +0000 | |||
|
50 | +++ b/file.txt Thu Jan 01 00:00:00 1970 +0000 | |||
|
51 | @@ -1,1 +1,1 @@ | |||
|
52 | -third | |||
|
53 | +dirty | |||
|
54 | $ hg diff --from . --reverse | |||
|
55 | diff -r bf5ff72eb7e0 file.txt | |||
|
56 | --- a/file.txt Thu Jan 01 00:00:00 1970 +0000 | |||
|
57 | +++ b/file.txt Thu Jan 01 00:00:00 1970 +0000 | |||
|
58 | @@ -1,1 +1,1 @@ | |||
|
59 | -dirty | |||
|
60 | +third | |||
|
61 | $ hg diff --to . | |||
|
62 | diff -r bf5ff72eb7e0 file.txt | |||
|
63 | --- a/file.txt Thu Jan 01 00:00:00 1970 +0000 | |||
|
64 | +++ b/file.txt Thu Jan 01 00:00:00 1970 +0000 | |||
|
65 | @@ -1,1 +1,1 @@ | |||
|
66 | -dirty | |||
|
67 | +third | |||
|
68 | $ hg diff --from 0 --to 2 | |||
|
69 | diff -r 4bb65dda5db4 -r bf5ff72eb7e0 file.txt | |||
|
70 | --- a/file.txt Thu Jan 01 00:00:00 1970 +0000 | |||
|
71 | +++ b/file.txt Thu Jan 01 00:00:00 1970 +0000 | |||
|
72 | @@ -1,1 +1,1 @@ | |||
|
73 | -first | |||
|
74 | +third | |||
|
75 | $ hg diff --from 2 --to 0 | |||
|
76 | diff -r bf5ff72eb7e0 -r 4bb65dda5db4 file.txt | |||
|
77 | --- a/file.txt Thu Jan 01 00:00:00 1970 +0000 | |||
|
78 | +++ b/file.txt Thu Jan 01 00:00:00 1970 +0000 | |||
|
79 | @@ -1,1 +1,1 @@ | |||
|
80 | -third | |||
|
81 | +first | |||
|
82 | $ hg co -C . | |||
|
83 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
|
84 | ||||
32 |
$ |
|
85 | $ cd .. | |
33 |
|
86 | |||
34 | Test dumb revspecs: top-level "x:y", "x:", ":y" and ":" ranges should be handled |
|
87 | Test dumb revspecs: top-level "x:y", "x:", ":y" and ":" ranges should be handled |
@@ -662,6 +662,8 b' Test command without options' | |||||
662 | options ([+] can be repeated): |
|
662 | options ([+] can be repeated): | |
663 |
|
663 | |||
664 | -r --rev REV [+] revision |
|
664 | -r --rev REV [+] revision | |
|
665 | --from REV revision to diff from | |||
|
666 | --to REV revision to diff to | |||
665 | -c --change REV change made by revision |
|
667 | -c --change REV change made by revision | |
666 | -a --text treat all files as text |
|
668 | -a --text treat all files as text | |
667 | -g --git use git extended diff format |
|
669 | -g --git use git extended diff format |
General Comments 0
You need to be logged in to leave comments.
Login now