D7479: repoview: add a test to track operation not supposed to trigger filtering
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Sat Nov 23 11:53:32 UTC 2019
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
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
To: marmoute, #hg-reviewers, indygreg
Cc: mjpieters, mercurial-devel
More information about the Mercurial-devel
mailing list