Skip to content
Snippets Groups Projects
Commit 1871a1ee64ed authored by Durham Goode's avatar Durham Goode
Browse files

treemanifest: add tests covering hg diff of partial trees

Previously the hg files tests also covered the logic (i.e.
treemanifest.matches) that governed how hg diff limited its diff. In a future
patch we will be switching treemanifest.diff() to have a custom implementation,
so let's go ahead and add equivalent test coverage for hg diff.
parent bd884ef2ee46
No related branches found
No related tags found
No related merge requests found
......@@ -437,6 +437,16 @@
$ hg ci -Aqm 'initial'
$ echo >> .A/one.txt
$ echo >> .A/two.txt
$ echo >> b/bar/fruits.txt
$ echo >> b/bar/orange/fly/gnat.py
$ echo >> b/bar/orange/fly/housefly.txt
$ echo >> b/foo/apple/bees/flower.py
$ echo >> c.txt
$ echo >> d.py
$ hg ci -Aqm 'second'
We'll see that visitdir works by removing some treemanifest revlogs and running
the files command with various parameters.
......@@ -468,6 +478,12 @@
b/bar/orange/fly/gnat.py (glob)
b/bar/orange/fly/housefly.txt (glob)
b/foo/apple/bees/flower.py (glob)
$ hg diff -r '.^' -r . --stat b
b/bar/fruits.txt | 1 +
b/bar/orange/fly/gnat.py | 1 +
b/bar/orange/fly/housefly.txt | 1 +
b/foo/apple/bees/flower.py | 1 +
4 files changed, 4 insertions(+), 0 deletions(-)
$ cp -R .hg/store-copy/. .hg/store
Test files with just includes and excludes.
......@@ -477,6 +493,9 @@
$ rm -r .hg/store/meta/b/foo/apple/bees
$ hg files -r . -I path:b/bar -X path:b/bar/orange/fly -I path:b/foo -X path:b/foo/apple/bees
b/bar/fruits.txt (glob)
$ hg diff -r '.^' -r . --stat -I path:b/bar -X path:b/bar/orange/fly -I path:b/foo -X path:b/foo/apple/bees
b/bar/fruits.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
$ cp -R .hg/store-copy/. .hg/store
Test files for a subdirectory, excluding a directory within it.
......@@ -487,6 +506,11 @@
b/bar/fruits.txt (glob)
b/bar/orange/fly/gnat.py (glob)
b/bar/orange/fly/housefly.txt (glob)
$ hg diff -r '.^' -r . --stat -X path:b/foo b
b/bar/fruits.txt | 1 +
b/bar/orange/fly/gnat.py | 1 +
b/bar/orange/fly/housefly.txt | 1 +
3 files changed, 3 insertions(+), 0 deletions(-)
$ cp -R .hg/store-copy/. .hg/store
Test files for a sub directory, including only a directory within it, and
......@@ -497,6 +521,10 @@
$ hg files -r . -I path:b/bar/orange -I path:a b
b/bar/orange/fly/gnat.py (glob)
b/bar/orange/fly/housefly.txt (glob)
$ hg diff -r '.^' -r . --stat -I path:b/bar/orange -I path:a b
b/bar/orange/fly/gnat.py | 1 +
b/bar/orange/fly/housefly.txt | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
$ cp -R .hg/store-copy/. .hg/store
Test files for a pattern, including a directory, and excluding a directory
......@@ -507,6 +535,9 @@
$ rm -r .hg/store/meta/b/bar/orange
$ hg files -r . glob:**.txt -I path:b/bar -X path:b/bar/orange
b/bar/fruits.txt (glob)
$ hg diff -r '.^' -r . --stat glob:**.txt -I path:b/bar -X path:b/bar/orange
b/bar/fruits.txt | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
$ cp -R .hg/store-copy/. .hg/store
Add some more changes to the deep repo
......@@ -522,7 +553,7 @@
checking directory manifests
crosschecking files in changesets and manifests
checking files
8 files, 3 changesets, 10 total revisions
8 files, 4 changesets, 18 total revisions
Dirlogs are included in fncache
$ grep meta/.A/00manifest.i .hg/store/fncache
......@@ -563,8 +594,9 @@
checking directory manifests
0: empty or missing b/
b/@0: parent-directory manifest refers to unknown revision 67688a370455
b/@1: parent-directory manifest refers to unknown revision f38e85d334c5
b/@2: parent-directory manifest refers to unknown revision 99c9792fd4b0
b/@1: parent-directory manifest refers to unknown revision f065da70369e
b/@2: parent-directory manifest refers to unknown revision ac0d30948e0b
b/@3: parent-directory manifest refers to unknown revision 367152e6af28
warning: orphan revlog 'meta/b/bar/00manifest.i'
warning: orphan revlog 'meta/b/bar/orange/00manifest.i'
warning: orphan revlog 'meta/b/bar/orange/fly/00manifest.i'
......@@ -577,5 +609,5 @@
b/bar/orange/fly/housefly.txt@0: in changeset but not in manifest
b/foo/apple/bees/flower.py@0: in changeset but not in manifest
checking files
8 files, 3 changesets, 10 total revisions
8 files, 4 changesets, 18 total revisions
6 warnings encountered!
......@@ -581,5 +613,5 @@
6 warnings encountered!
8 integrity errors encountered!
9 integrity errors encountered!
(first damaged changeset appears to be 0)
[1]
$ cp -R .hg/store-newcopy/. .hg/store
......@@ -590,8 +622,6 @@
checking changesets
checking manifests
checking directory manifests
b/@1: parent-directory manifest refers to unknown revision f38e85d334c5
b/@2: parent-directory manifest refers to unknown revision 99c9792fd4b0
b/bar/@?: rev 1 points to unexpected changeset 1
b/bar/@?: 5e03c4ee5e4a not in parent-directory manifest
b/@2: parent-directory manifest refers to unknown revision ac0d30948e0b
b/@3: parent-directory manifest refers to unknown revision 367152e6af28
b/bar/@?: rev 2 points to unexpected changeset 2
......@@ -597,4 +627,6 @@
b/bar/@?: rev 2 points to unexpected changeset 2
b/bar/@?: 1b16940d66d6 not in parent-directory manifest
b/bar/orange/@?: rev 1 points to unexpected changeset 2
b/bar/@?: 44d7e1146e0d not in parent-directory manifest
b/bar/@?: rev 3 points to unexpected changeset 3
b/bar/@?: 70b10c6b17b7 not in parent-directory manifest
b/bar/orange/@?: rev 2 points to unexpected changeset 3
(expected None)
......@@ -600,5 +632,5 @@
(expected None)
b/bar/orange/fly/@?: rev 1 points to unexpected changeset 2
b/bar/orange/fly/@?: rev 2 points to unexpected changeset 3
(expected None)
crosschecking files in changesets and manifests
checking files
......@@ -602,6 +634,6 @@
(expected None)
crosschecking files in changesets and manifests
checking files
8 files, 3 changesets, 10 total revisions
8 files, 4 changesets, 18 total revisions
2 warnings encountered!
8 integrity errors encountered!
......@@ -606,6 +638,6 @@
2 warnings encountered!
8 integrity errors encountered!
(first damaged changeset appears to be 1)
(first damaged changeset appears to be 2)
[1]
$ cp -R .hg/store-newcopy/. .hg/store
......@@ -621,7 +653,7 @@
adding changesets
adding manifests
adding file changes
added 3 changesets with 10 changes to 8 files
added 4 changesets with 18 changes to 8 files
updating to branch default
8 files updated, 0 files merged, 0 files removed, 0 files unresolved
No server errors.
......@@ -656,7 +688,7 @@
checking directory manifests
crosschecking files in changesets and manifests
checking files
8 files, 3 changesets, 10 total revisions
8 files, 4 changesets, 18 total revisions
$ cd ..
Create clones using old repo formats to use in later tests
......@@ -667,7 +699,7 @@
adding changesets
adding manifests
adding file changes
added 3 changesets with 10 changes to 8 files
added 4 changesets with 18 changes to 8 files
updating to branch default
8 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd deeprepo-basicstore
......@@ -683,7 +715,7 @@
adding changesets
adding manifests
adding file changes
added 3 changesets with 10 changes to 8 files
added 4 changesets with 18 changes to 8 files
updating to branch default
8 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd deeprepo-encodedstore
......@@ -701,7 +733,7 @@
checking directory manifests
crosschecking files in changesets and manifests
checking files
8 files, 3 changesets, 10 total revisions
8 files, 4 changesets, 18 total revisions
Local clone with encodedstore
$ hg clone -U deeprepo-encodedstore local-clone-encodedstore
......@@ -711,7 +743,7 @@
checking directory manifests
crosschecking files in changesets and manifests
checking files
8 files, 3 changesets, 10 total revisions
8 files, 4 changesets, 18 total revisions
Local clone with fncachestore
$ hg clone -U deeprepo local-clone-fncachestore
......@@ -721,7 +753,7 @@
checking directory manifests
crosschecking files in changesets and manifests
checking files
8 files, 3 changesets, 10 total revisions
8 files, 4 changesets, 18 total revisions
Stream clone with basicstore
$ hg clone --config experimental.changegroup3=True --uncompressed -U \
......@@ -737,7 +769,7 @@
checking directory manifests
crosschecking files in changesets and manifests
checking files
8 files, 3 changesets, 10 total revisions
8 files, 4 changesets, 18 total revisions
Stream clone with encodedstore
$ hg clone --config experimental.changegroup3=True --uncompressed -U \
......@@ -753,7 +785,7 @@
checking directory manifests
crosschecking files in changesets and manifests
checking files
8 files, 3 changesets, 10 total revisions
8 files, 4 changesets, 18 total revisions
Stream clone with fncachestore
$ hg clone --config experimental.changegroup3=True --uncompressed -U \
......@@ -769,7 +801,7 @@
checking directory manifests
crosschecking files in changesets and manifests
checking files
8 files, 3 changesets, 10 total revisions
8 files, 4 changesets, 18 total revisions
Packed bundle
$ hg -R deeprepo debugcreatestreamclonebundle repo-packed.hg
......@@ -773,7 +805,7 @@
Packed bundle
$ hg -R deeprepo debugcreatestreamclonebundle repo-packed.hg
writing 3349 bytes for 18 files
writing 5330 bytes for 18 files
bundle requirements: generaldelta, revlogv1, treemanifest
$ hg debugbundle --spec repo-packed.hg
none-packed1;requirements%3Dgeneraldelta%2Crevlogv1%2Ctreemanifest
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment