Patchwork D7479: repoview: add a test to track operation not supposed to trigger filtering

login
register
mail settings
Submitter phabricator
Date Nov. 23, 2019, 11:53 a.m.
Message ID <49fef50cb22fbd9179ec62338dcf050e@localhost.localdomain>
Download mbox | patch
Permalink /patch/43473/
State Not Applicable
Headers show

Comments

phabricator - Nov. 23, 2019, 11:53 a.m.
marmoute edited the summary of this revision.
marmoute updated this revision to Diff 18346.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D7479?vs=18331&id=18346

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7479/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7479

AFFECTED FILES
  tests/test-repo-filters-tiptoe.t

CHANGE DETAILS




To: marmoute, #hg-reviewers, indygreg
Cc: mjpieters, mercurial-devel

Patch

diff --git a/tests/test-repo-filters-tiptoe.t b/tests/test-repo-filters-tiptoe.t
new file mode 100644
--- /dev/null
+++ b/tests/test-repo-filters-tiptoe.t
@@ -0,0 +1,156 @@ 
+===================================
+Test repository filtering avoidance
+===================================
+
+This test file is a bit special as he does not check feature, but performance related internal code path.
+
+Right now, filtering a repository comes with a cost that might be significant.
+Until this get better, ther are various operation that try hard not to trigger
+a filtering computation. This test file make sure we don't reintroduce code that trigger the filtering for these operation:
+
+Setup
+-----
+  $ hg init test-repo
+  $ cd test-repo
+  $ echo "some line" > z
+  $ echo a > a
+  $ hg commit -Am a
+  adding a
+  adding z
+  $ echo "in a" >> z
+  $ echo b > b
+  $ hg commit -Am b
+  adding b
+  $ echo "file" >> z
+  $ echo c > c
+  $ hg commit -Am c
+  adding c
+  $ hg rm a
+  $ echo c1 > c
+  $ hg add c
+  c already tracked!
+  $ echo d > d
+  $ hg add d
+  $ rm b
+
+  $ cat << EOF >> $HGRCPATH
+  > [devel]
+  > debug.repo-filters = yes
+  > [ui]
+  > debug = yes
+  > EOF
+
+
+tests
+-----
+
+Getting the node of `null`
+
+  $ hg log -r null -T "{node}\n"
+  debug.filters: computing revision filter for "visible"
+  0000000000000000000000000000000000000000
+
+Getting basic changeset inforation about `null`
+
+  $ hg log -r null -T "{node}\n{date}\n"
+  debug.filters: computing revision filter for "visible"
+  0000000000000000000000000000000000000000
+  0.00
+
+Getting status of null
+
+  $ hg status --change null
+  debug.filters: computing revision filter for "visible"
+
+Getting status of working copy
+
+  $ hg status
+  debug.filters: computing revision filter for "visible"
+  M c
+  A d
+  R a
+  ! b
+
+Getting data about the working copy parent
+
+  $ hg log -r '.' -T "{node}\n{date}\n"
+  debug.filters: computing revision filter for "visible"
+  c2932ca7786be30b67154d541a8764fae5532261
+  0.00
+
+Getting working copy diff
+
+  $ hg diff
+  debug.filters: computing revision filter for "visible"
+  diff -r c2932ca7786be30b67154d541a8764fae5532261 a
+  --- a/a	Thu Jan 01 00:00:00 1970 +0000
+  +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  @@ -1,1 +0,0 @@
+  -a
+  diff -r c2932ca7786be30b67154d541a8764fae5532261 c
+  --- a/c	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/c	Thu Jan 01 00:00:00 1970 +0000
+  @@ -1,1 +1,1 @@
+  -c
+  +c1
+  diff -r c2932ca7786be30b67154d541a8764fae5532261 d
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/d	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +d
+  $ hg diff --change .
+  debug.filters: computing revision filter for "visible"
+  diff -r 05293e5dd8d1ae4f84a8520a11c6f97cad26deca -r c2932ca7786be30b67154d541a8764fae5532261 c
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/c	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +c
+  diff -r 05293e5dd8d1ae4f84a8520a11c6f97cad26deca -r c2932ca7786be30b67154d541a8764fae5532261 z
+  --- a/z	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/z	Thu Jan 01 00:00:00 1970 +0000
+  @@ -1,2 +1,3 @@
+   some line
+   in a
+  +file
+
+exporting the current changeset
+
+  $ hg export
+  debug.filters: computing revision filter for "visible"
+  exporting patch:
+  # HG changeset patch
+  # User test
+  # Date 0 0
+  #      Thu Jan 01 00:00:00 1970 +0000
+  # Node ID c2932ca7786be30b67154d541a8764fae5532261
+  # Parent  05293e5dd8d1ae4f84a8520a11c6f97cad26deca
+  c
+  
+  diff -r 05293e5dd8d1ae4f84a8520a11c6f97cad26deca -r c2932ca7786be30b67154d541a8764fae5532261 c
+  --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/c	Thu Jan 01 00:00:00 1970 +0000
+  @@ -0,0 +1,1 @@
+  +c
+  diff -r 05293e5dd8d1ae4f84a8520a11c6f97cad26deca -r c2932ca7786be30b67154d541a8764fae5532261 z
+  --- a/z	Thu Jan 01 00:00:00 1970 +0000
+  +++ b/z	Thu Jan 01 00:00:00 1970 +0000
+  @@ -1,2 +1,3 @@
+   some line
+   in a
+  +file
+
+using annotate
+
+- file with a single change
+
+  $ hg annotate a
+  debug.filters: computing revision filter for "visible"
+  0: a
+
+- file with multiple change
+
+  $ hg annotate z
+  debug.filters: computing revision filter for "visible"
+  0: some line
+  1: in a
+  2: file