post-receive hook updateInstead emulation cleanup

The code is only needed because for a long time, git-annex didn't
install hooks in repos on crippled filesystems. Now it does, and they
work at least on FAT (where all files are executable) and Windows.

It would be possible to remove this code in v8 simply by re-installing
the hooks.
This commit is contained in:
Joey Hess 2019-09-11 14:41:51 -04:00
parent 9317c4a5b3
commit 99b509572d
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 4 additions and 3 deletions

View file

@ -458,8 +458,9 @@ pushRemote o remote (Just branch, _) = stopUnless (pure (pushOption o) <&&> need
| remoteAnnexReadOnly gc = return False | remoteAnnexReadOnly gc = return False
| not (remoteAnnexPush gc) = return False | not (remoteAnnexPush gc) = return False
| otherwise = anyM (newer remote) [syncBranch branch, Annex.Branch.name] | otherwise = anyM (newer remote) [syncBranch branch, Annex.Branch.name]
-- Do updateInstead emulation for remotes on eg removable drives -- Older remotes on crippled filesystems may not have a
-- formatted FAT, where the post-receive hook won't run. -- post-receive hook set up, so when updateInstead emulation
-- is needed, run post-receive manually.
postpushupdate repo = case Git.repoWorkTree repo of postpushupdate repo = case Git.repoWorkTree repo of
Nothing -> return True Nothing -> return True
Just wt -> ifM needemulation Just wt -> ifM needemulation

View file

@ -13,7 +13,7 @@ automatically creates a post-receive hook using this.
When a repository is configured with receive.denyCurrentBranch=updateInstead, When a repository is configured with receive.denyCurrentBranch=updateInstead,
pushes to the repository update its work tree. However, that does not work pushes to the repository update its work tree. However, that does not work
for repositories that use have an adjusted branch checked for repositories that have an adjusted branch checked
out. The hook updates the work tree when run in such a repository, out. The hook updates the work tree when run in such a repository,
the same as running `git-annex merge` would. the same as running `git-annex merge` would.