diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2019-03-13 10:16:34 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-03-14 03:46:29 (GMT) |
commit | 6d67a993b2a7c3e1a9c3688c92f28b237144c2fd (patch) | |
tree | 8e48f88cb326fa6e3d6f3d5b7820463eee60e8f6 /t/t3429-rebase-edit-todo.sh | |
parent | 01710d0a3ff549a2bb5d8a97990393c2d95ce9c1 (diff) | |
download | git-6d67a993b2a7c3e1a9c3688c92f28b237144c2fd.zip git-6d67a993b2a7c3e1a9c3688c92f28b237144c2fd.tar.gz git-6d67a993b2a7c3e1a9c3688c92f28b237144c2fd.tar.bz2 |
get_oid(): when an object was not found, try harder
It is quite possible that the loose object cache gets stale when new
objects are written. In that case, get_oid() would potentially say that
it cannot find a given object, even if it should find it.
Let's blow away the loose object cache as well as the read packs and try
again in that case.
Note: this does *not* affect the code path that was introduced to help
avoid looking for the same non-existing objects (which made some
operations really expensive via NFS): that code path is handled by the
`OBJECT_INFO_QUICK` flag (which does not even apply to `get_oid()`,
which has no equivalent flag, at least at the time this patch was
written).
This incidentally fixes the problem identified earlier where an
interactive rebase wanted to re-read (and validate) the todo list after
an `exec` command modified it.
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t3429-rebase-edit-todo.sh')
-rwxr-xr-x | t/t3429-rebase-edit-todo.sh | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/t/t3429-rebase-edit-todo.sh b/t/t3429-rebase-edit-todo.sh index 862f229..76f6d30 100755 --- a/t/t3429-rebase-edit-todo.sh +++ b/t/t3429-rebase-edit-todo.sh @@ -11,7 +11,7 @@ test_expect_success 'rebase exec modifies rebase-todo' ' test -e F ' -test_expect_failure SHA1 'loose object cache vs re-reading todo list' ' +test_expect_success SHA1 'loose object cache vs re-reading todo list' ' GIT_REBASE_TODO=.git/rebase-merge/git-rebase-todo && export GIT_REBASE_TODO && write_script append-todo.sh <<-\EOS && |