tests/test-legacy-exit-code.t
author Simon Sapin <simon.sapin@octobus.net>
Fri, 10 Dec 2021 16:18:58 +0100
changeset 48454 473af5cbc209
parent 45906 95c4cca641f6
child 49621 55c6ebd11cb9
permissions -rw-r--r--
rhg: Add support for `rhg status --copies` Copy sources are collected during `status()` rather than after the fact like in Python, because `status()` takes a `&mut` exclusive reference to the dirstate map (in order to potentially mutate it for directory mtimes) and returns `Cow<'_, HgPath>` that borrow the dirstate map. Even though with `Cow` only some shared borrows remain, the still extend the same lifetime of the initial `&mut` so the dirstate map cannot be borrowed again to access copy sources after the fact: https://doc.rust-lang.org/nomicon/lifetime-mismatch.html#limits-of-lifetimes Additionally, collecting copy sources during the dirstate tree traversal that `status()` already does avoids the cost of another traversal or other lookups (though I haven’t benchmarked that cost). Differential Revision: https://phab.mercurial-scm.org/D11899

Tests that the exit code is as expected when ui.detailed-exit-code is *not*
enabled.

  $ cat >> $HGRCPATH << EOF
  > [ui]
  > detailed-exit-code=no
  > EOF

  $ hg init
  $ echo a > a
Expect exit code 0 on success
  $ hg ci -Aqm initial

  $ hg co nonexistent
  abort: unknown revision 'nonexistent'
  [255]

  $ hg co 'none()'
  abort: empty revision set
  [255]

  $ hg co 'invalid('
  hg: parse error at 8: not a prefix: end
  (invalid(
           ^ here)
  [255]

  $ hg co 'invalid('
  hg: parse error at 8: not a prefix: end
  (invalid(
           ^ here)
  [255]

  $ hg continue
  abort: no operation in progress
  [255]

  $ hg st --config a=b
  abort: malformed --config option: 'a=b' (use --config section.name=value)
  [255]

  $ echo b > a
  $ hg ci -m second
  $ echo c > a
  $ hg ci -m third
  $ hg --config extensions.rebase= rebase -r . -d 0 -q
  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
  unresolved conflicts (see 'hg resolve', then 'hg rebase --continue')
  [1]