tests/test-diff-reverse.t
author Raphaël Gomès <rgomes@octobus.net>
Mon, 20 Sep 2021 15:16:10 +0200
branchstable
changeset 48017 ff2304dd3ba9
parent 23080 c586cb50872b
child 49621 55c6ebd11cb9
permissions -rw-r--r--
patchbomb: fix traceback on outgoing when not specifying revisions A user reported that `hg email -n -o` raised with the following traceback: ``` ** unknown exception encountered, please report by visiting ** https://mercurial-scm.org/wiki/BugTracker ** Python 3.8.12 (default, Sep 13 2021, 22:12:54) [GCC 7.5.0] ** Mercurial Distributed SCM (version 5.9.1) ** Extensions loaded: patchbomb Traceback (most recent call last): File "/usr/pkg/bin/hg", line 61, in <module> dispatch.run() File "/usr/pkg/lib/python3.8/site-packages/mercurial/dispatch.py", line 144, in run status = dispatch(req) File "/usr/pkg/lib/python3.8/site-packages/mercurial/dispatch.py", line 250, in dispatch status = _rundispatch(req) File "/usr/pkg/lib/python3.8/site-packages/mercurial/dispatch.py", line 294, in _rundispatch ret = _runcatch(req) or 0 File "/usr/pkg/lib/python3.8/site-packages/mercurial/dispatch.py", line 470, in _runcatch return _callcatch(ui, _runcatchfunc) File "/usr/pkg/lib/python3.8/site-packages/mercurial/dispatch.py", line 480, in _callcatch return scmutil.callcatch(ui, func) File "/usr/pkg/lib/python3.8/site-packages/mercurial/scmutil.py", line 153, in callcatch return func() File "/usr/pkg/lib/python3.8/site-packages/mercurial/dispatch.py", line 460, in _runcatchfunc return _dispatch(req) File "/usr/pkg/lib/python3.8/site-packages/mercurial/dispatch.py", line 1273, in _dispatch return runcommand( File "/usr/pkg/lib/python3.8/site-packages/mercurial/dispatch.py", line 918, in runcommand ret = _runcommand(ui, options, cmd, d) File "/usr/pkg/lib/python3.8/site-packages/mercurial/dispatch.py", line 1285, in _runcommand return cmdfunc() File "/usr/pkg/lib/python3.8/site-packages/mercurial/dispatch.py", line 1271, in <lambda> d = lambda: util.checksignature(func)(ui, *args, **strcmdopt) File "/usr/pkg/lib/python3.8/site-packages/mercurial/util.py", line 1886, in check return func(*args, **kwargs) File "/usr/pkg/lib/python3.8/site-packages/hgext/patchbomb.py", line 817, in email revs = _getoutgoing(repo, dest, revs) File "/usr/pkg/lib/python3.8/site-packages/hgext/patchbomb.py", line 537, in _getoutgoing safe_paths = [urlutil.hidepassword(p.rawloc) for p in paths] File "/usr/pkg/lib/python3.8/site-packages/hgext/patchbomb.py", line 537, in <listcomp> safe_paths = [urlutil.hidepassword(p.rawloc) for p in paths] File "/usr/pkg/lib/python3.8/site-packages/mercurial/utils/urlutil.py", line 501, in get_push_paths msg %= dest TypeError: %b requires a bytes-like object, or an object that implements __bytes__, not 'NoneType' ``` This is due to patchbomb passing `[None]` in the `dests` parameter of the multi-paths outgoing function, we fix this in this change and add a non-regression test. Differential Revision: https://phab.mercurial-scm.org/D11456
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12139
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
     1
  $ hg init
9725
3f522d2fa633 diff: add --inverse option
Yannick Gingras <ygingras@ygingras.net>
parents:
diff changeset
     2
12139
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
     3
  $ cat > a <<EOF
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
     4
  > a
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
     5
  > b
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
     6
  > c
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
     7
  > EOF
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
     8
  $ hg ci -Am adda
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
     9
  adding a
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    10
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    11
  $ cat > a <<EOF
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    12
  > d
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    13
  > e
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    14
  > f
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    15
  > EOF
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    16
  $ hg ci -m moda
9725
3f522d2fa633 diff: add --inverse option
Yannick Gingras <ygingras@ygingras.net>
parents:
diff changeset
    17
12139
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    18
  $ hg diff --reverse -r0 -r1
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    19
  diff -r 2855cdcfcbb7 -r 8e1805a3cf6e a
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    20
  --- a/a	Thu Jan 01 00:00:00 1970 +0000
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    21
  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    22
  @@ -1,3 +1,3 @@
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    23
  -d
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    24
  -e
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    25
  -f
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    26
  +a
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    27
  +b
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    28
  +c
9725
3f522d2fa633 diff: add --inverse option
Yannick Gingras <ygingras@ygingras.net>
parents:
diff changeset
    29
12139
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    30
  $ cat >> a <<EOF
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    31
  > g
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    32
  > h
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    33
  > EOF
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    34
  $ hg diff --reverse --nodates
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    35
  diff -r 2855cdcfcbb7 a
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    36
  --- a/a
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    37
  +++ b/a
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    38
  @@ -1,5 +1,3 @@
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    39
   d
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    40
   e
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    41
   f
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    42
  -g
5a69ea8d65b3 tests: unify test-diff-reverse
Adrian Buehlmann <adrian@cadifra.com>
parents: 9857
diff changeset
    43
  -h
9725
3f522d2fa633 diff: add --inverse option
Yannick Gingras <ygingras@ygingras.net>
parents:
diff changeset
    44
23080
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    45
should show removed file 'a' as being added
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    46
  $ hg revert a
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    47
  $ hg rm a
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    48
  $ hg diff --reverse --nodates a
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    49
  diff -r 2855cdcfcbb7 a
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    50
  --- /dev/null
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    51
  +++ b/a
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    52
  @@ -0,0 +1,3 @@
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    53
  +d
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    54
  +e
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    55
  +f
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    56
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    57
should show added file 'b' as being removed
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    58
  $ echo b >> b
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    59
  $ hg add b
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    60
  $ hg diff --reverse --nodates b
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    61
  diff -r 2855cdcfcbb7 b
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    62
  --- a/b
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    63
  +++ /dev/null
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    64
  @@ -1,1 +0,0 @@
c586cb50872b context.status: remove incorrect swapping of added/removed in workingctx
Martin von Zweigbergk <martinvonz@google.com>
parents: 12139
diff changeset
    65
  -b