tests/test-diff-reverse.t
author spectral <spectral@google.com>
Mon, 06 Aug 2018 12:52:22 -0700
changeset 38954 5a7df82de142
parent 23080 c586cb50872b
child 49621 55c6ebd11cb9
permissions -rw-r--r--
includematcher: separate "parents" from "dirs" A future patch will make use of this separation so that we can make more intelligent decisions about what to investigate/load when the matcher is in use. Currently, even with this patch, we typically use the 'visitdir' call to identify if we can skip some directory, something along the lines of: for f in all_items: if match.visitdir(f): <do stuff> This can be slower than we'd like if there are a lot of items; it requires N calls to match.visitdir in the best case. Commonly, especially with 'narrow', we have a situation where we do some work for the directory, possibly just loading it from disk (when using treemanifests) and then check if we should be interacting with it at all, which can be a huge slowdown in some pathological cases. Differential Revision: https://phab.mercurial-scm.org/D4129

  $ hg init

  $ cat > a <<EOF
  > a
  > b
  > c
  > EOF
  $ hg ci -Am adda
  adding a

  $ cat > a <<EOF
  > d
  > e
  > f
  > EOF
  $ hg ci -m moda

  $ hg diff --reverse -r0 -r1
  diff -r 2855cdcfcbb7 -r 8e1805a3cf6e a
  --- a/a	Thu Jan 01 00:00:00 1970 +0000
  +++ b/a	Thu Jan 01 00:00:00 1970 +0000
  @@ -1,3 +1,3 @@
  -d
  -e
  -f
  +a
  +b
  +c

  $ cat >> a <<EOF
  > g
  > h
  > EOF
  $ hg diff --reverse --nodates
  diff -r 2855cdcfcbb7 a
  --- a/a
  +++ b/a
  @@ -1,5 +1,3 @@
   d
   e
   f
  -g
  -h

should show removed file 'a' as being added
  $ hg revert a
  $ hg rm a
  $ hg diff --reverse --nodates a
  diff -r 2855cdcfcbb7 a
  --- /dev/null
  +++ b/a
  @@ -0,0 +1,3 @@
  +d
  +e
  +f

should show added file 'b' as being removed
  $ echo b >> b
  $ hg add b
  $ hg diff --reverse --nodates b
  diff -r 2855cdcfcbb7 b
  --- a/b
  +++ /dev/null
  @@ -1,1 +0,0 @@
  -b