revert(3p/git): Revert merge of git upstream at v2.26.2
This causes cgit to serve error pages, which is undesirable. This reverts commit5229c9b232
, reversing changes made tof2b211131f
.
This commit is contained in:
parent
6f8fbf4aa4
commit
93ba78d6f4
1006 changed files with 60537 additions and 148724 deletions
23
third_party/git/refs/packed-backend.c
vendored
23
third_party/git/refs/packed-backend.c
vendored
|
@ -1012,23 +1012,14 @@ int packed_refs_lock(struct ref_store *ref_store, int flags, struct strbuf *err)
|
|||
}
|
||||
|
||||
/*
|
||||
* There is a stat-validity problem might cause `update-ref -d`
|
||||
* lost the newly commit of a ref, because a new `packed-refs`
|
||||
* file might has the same on-disk file attributes such as
|
||||
* timestamp, file size and inode value, but has a changed
|
||||
* ref value.
|
||||
*
|
||||
* This could happen with a very small chance when
|
||||
* `update-ref -d` is called and at the same time another
|
||||
* `pack-refs --all` process is running.
|
||||
*
|
||||
* Now that we hold the `packed-refs` lock, it is important
|
||||
* to make sure we could read the latest version of
|
||||
* `packed-refs` file no matter we have just mmap it or not.
|
||||
* So what need to do is clear the snapshot if we hold it
|
||||
* already.
|
||||
* Now that we hold the `packed-refs` lock, make sure that our
|
||||
* snapshot matches the current version of the file. Normally
|
||||
* `get_snapshot()` does that for us, but that function
|
||||
* assumes that when the file is locked, any existing snapshot
|
||||
* is still valid. We've just locked the file, but it might
|
||||
* have changed the moment *before* we locked it.
|
||||
*/
|
||||
clear_snapshot(refs);
|
||||
validate_snapshot(refs);
|
||||
|
||||
/*
|
||||
* Now make sure that the packed-refs file as it exists in the
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue