diff options
| author | David Bremner <david@tethera.net> | 2022-04-19 08:32:14 -0300 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2022-06-17 08:40:19 -0300 |
| commit | 66ccf420c20bedec8dd78dc81ed1166761b7a467 (patch) | |
| tree | d05cd230d80e9ee384e30d7065b0c41b199d0a45 /test | |
| parent | 5ef56fe8126006351008c4016ea34d97c7cdcd9f (diff) | |
CLI/git: cache git indices
If the private index file matches a previously known revision of the
database, we can update the index incrementally using the recorded
lastmod counter. This is typically much faster than a full update,
although it could be slower in the case of large changes to the
database.
The "git-read-tree HEAD" is also a bottleneck, but unfortunately
sometimes is needed. Cache the index checksum and hash to reduce the
number of times the operation is run. The overall design is a
simplified version of the PrivateIndex class.
Diffstat (limited to 'test')
| -rwxr-xr-x | test/T850-git.sh | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/T850-git.sh b/test/T850-git.sh index 72091b56..db76dae9 100755 --- a/test/T850-git.sh +++ b/test/T850-git.sh @@ -33,6 +33,47 @@ notmuch tag '-"quoted tag"' '*' git -C clone2.git ls-tree -r --name-only HEAD | grep /inbox > AFTER test_expect_equal_file_nonempty BEFORE AFTER +test_begin_subtest "commit (incremental)" +notmuch tag +test id:20091117190054.GU3165@dottiness.seas.harvard.edu +notmuch git -C tags.git -p '' commit +git -C tags.git ls-tree -r --name-only HEAD | + grep 20091117190054 | sort > OUTPUT +echo "--------------------------------------------------" >> OUTPUT +notmuch tag -test id:20091117190054.GU3165@dottiness.seas.harvard.edu +notmuch git -C tags.git -p '' commit +git -C tags.git ls-tree -r --name-only HEAD | + grep 20091117190054 | sort >> OUTPUT +cat <<EOF > EXPECTED +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/inbox +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/signed +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/test +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/unread +-------------------------------------------------- +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/inbox +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/signed +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/unread +EOF +test_expect_equal_file_nonempty EXPECTED OUTPUT + +test_begin_subtest "commit (change prefix)" +notmuch tag +test::one id:20091117190054.GU3165@dottiness.seas.harvard.edu +notmuch git -C tags.git -p 'test::' commit +git -C tags.git ls-tree -r --name-only HEAD | + grep 20091117190054 | sort > OUTPUT +echo "--------------------------------------------------" >> OUTPUT +notmuch tag -test::one id:20091117190054.GU3165@dottiness.seas.harvard.edu +notmuch git -C tags.git -p '' commit +git -C tags.git ls-tree -r --name-only HEAD | + grep 20091117190054 | sort >> OUTPUT +cat <<EOF > EXPECTED +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/one +-------------------------------------------------- +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/inbox +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/signed +tags/20091117190054.GU3165@dottiness.seas.harvard.edu/unread +EOF +test_expect_equal_file_nonempty EXPECTED OUTPUT + test_begin_subtest "checkout" notmuch dump > BEFORE notmuch tag -inbox '*' |
