summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Assistant/Threads/Committer.hs20
-rw-r--r--Assistant/Threads/Watcher.hs5
2 files changed, 14 insertions, 11 deletions
diff --git a/Assistant/Threads/Committer.hs b/Assistant/Threads/Committer.hs
index 17eefd3f5..c07109489 100644
--- a/Assistant/Threads/Committer.hs
+++ b/Assistant/Threads/Committer.hs
@@ -157,23 +157,21 @@ commitStaged = do
case v of
Left _ -> return False
Right _ -> do
- direct <- isDirect
- let params = nomessage $ catMaybes
- [ Just $ Param "--quiet"
- {- In indirect mode, avoid running the
- - usual git-annex pre-commit hook;
- - watch does the same symlink fixing,
- - and we don't want to deal with unlocked
- - files in these commits. -}
- , if direct then Nothing else Just $ Param "--no-verify"
- ]
{- Empty commits may be made if tree changes cancel
- each other out, etc. Git returns nonzero on those,
- so don't propigate out commit failures. -}
void $ inRepo $ catchMaybeIO .
- Git.Command.runQuiet (Param "commit" : params)
+ Git.Command.runQuiet
+ (Param "commit" : nomessage params)
return True
where
+ params =
+ [ Param "--quiet"
+ {- Avoid running the usual pre-commit hook;
+ - the Watcher does the same symlink fixing,
+ - and direct mode bookkeeping updating. -}
+ , Param "--no-verify"
+ ]
nomessage ps
| Git.Version.older "1.7.2" =
Param "-m" : Param "autocommit" : ps
diff --git a/Assistant/Threads/Watcher.hs b/Assistant/Threads/Watcher.hs
index 4201a6404..58c4c2e30 100644
--- a/Assistant/Threads/Watcher.hs
+++ b/Assistant/Threads/Watcher.hs
@@ -300,6 +300,11 @@ onDel file _ = do
onDel' :: FilePath -> Annex ()
onDel' file = do
+ whenM isDirect $ do
+ mkey <- catKeyFile file
+ case mkey of
+ Nothing -> noop
+ Just key -> void $ removeAssociatedFile key file
Annex.Queue.addUpdateIndex =<<
inRepo (Git.UpdateIndex.unstageFile file)