Making a commit that results in a blob that already exists in the ODB (i.e. committing something, then making a revert commit) will result in us trying to p_rename -> MoveFileExW a temp file into the existing ODB entry. Despite the MOVEFILE_REPLACE_EXISTING flag is passed in, Win32 does not care and fails it with STATUS_ACCESS_DENIED. To fix this, we p_unlink the ODB entry before attempting to rename it. This call will typically fail, but we don't care, we'll let the p_rename fail if the file actually does exist and we couldn't delete it for some reason (ACLs, etc).
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| ppc | Loading commit data... | |
| transports | Loading commit data... | |
| unix | Loading commit data... | |
| win32 | Loading commit data... | |
| attr.c | Loading commit data... | |
| attr.h | Loading commit data... | |
| attr_file.c | Loading commit data... | |
| attr_file.h | Loading commit data... | |
| blob.c | Loading commit data... | |
| blob.h | Loading commit data... | |
| bswap.h | Loading commit data... | |
| buffer.c | Loading commit data... | |
| buffer.h | Loading commit data... | |
| cache.c | Loading commit data... | |
| cache.h | Loading commit data... | |
| cc-compat.h | Loading commit data... | |
| commit.c | Loading commit data... | |
| commit.h | Loading commit data... | |
| common.h | Loading commit data... | |
| config.c | Loading commit data... | |
| config.h | Loading commit data... | |
| config_file.c | Loading commit data... | |
| delta-apply.c | Loading commit data... | |
| delta-apply.h | Loading commit data... | |
| errors.c | Loading commit data... | |
| fetch.c | Loading commit data... | |
| fetch.h | Loading commit data... | |
| filebuf.c | Loading commit data... | |
| filebuf.h | Loading commit data... | |
| fileops.c | Loading commit data... | |
| fileops.h | Loading commit data... | |
| global.c | Loading commit data... | |
| global.h | Loading commit data... | |
| hash.c | Loading commit data... | |
| hash.h | Loading commit data... | |
| hashtable.c | Loading commit data... | |
| hashtable.h | Loading commit data... | |
| ignore.c | Loading commit data... | |
| ignore.h | Loading commit data... | |
| index.c | Loading commit data... | |
| index.h | Loading commit data... | |
| indexer.c | Loading commit data... | |
| iterator.c | Loading commit data... | |
| iterator.h | Loading commit data... | |
| map.h | Loading commit data... | |
| mwindow.c | Loading commit data... | |
| mwindow.h | Loading commit data... | |
| netops.c | Loading commit data... | |
| netops.h | Loading commit data... | |
| notes.c | Loading commit data... | |
| notes.h | Loading commit data... | |
| object.c | Loading commit data... | |
| odb.c | Loading commit data... | |
| odb.h | Loading commit data... | |
| odb_loose.c | Loading commit data... | |
| odb_pack.c | Loading commit data... | |
| oid.c | Loading commit data... | |
| pack.c | Loading commit data... | |
| pack.h | Loading commit data... | |
| path.c | Loading commit data... | |
| path.h | Loading commit data... | |
| pkt.c | Loading commit data... | |
| pkt.h | Loading commit data... | |
| posix.c | Loading commit data... | |
| posix.h | Loading commit data... | |
| pqueue.c | Loading commit data... | |
| pqueue.h | Loading commit data... | |
| protocol.c | Loading commit data... | |
| protocol.h | Loading commit data... | |
| reflog.c | Loading commit data... | |
| reflog.h | Loading commit data... | |
| refs.c | Loading commit data... | |
| refs.h | Loading commit data... | |
| refspec.c | Loading commit data... | |
| refspec.h | Loading commit data... | |
| remote.c | Loading commit data... | |
| remote.h | Loading commit data... | |
| repository.c | Loading commit data... | |
| repository.h | Loading commit data... | |
| revwalk.c | Loading commit data... | |
| sha1.c | Loading commit data... | |
| sha1.h | Loading commit data... | |
| sha1_lookup.c | Loading commit data... | |
| sha1_lookup.h | Loading commit data... | |
| signature.c | Loading commit data... | |
| signature.h | Loading commit data... | |
| status.c | Loading commit data... | |
| tag.c | Loading commit data... | |
| tag.h | Loading commit data... | |
| thread-utils.c | Loading commit data... | |
| thread-utils.h | Loading commit data... | |
| transport.c | Loading commit data... | |
| transport.h | Loading commit data... | |
| tree-cache.c | Loading commit data... | |
| tree-cache.h | Loading commit data... | |
| tree.c | Loading commit data... | |
| tree.h | Loading commit data... | |
| tsort.c | Loading commit data... | |
| util.c | Loading commit data... | |
| util.h | Loading commit data... | |
| vector.c | Loading commit data... | |
| vector.h | Loading commit data... |