From c812018cc51223b9c832b2eb9b5b26f4aeb27009 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 4 Aug 2015 14:43:42 -0400 Subject: [PATCH] proxy: Fix removal of files deleted by the proxied command. Git.Ref.headSha doesn't really work in direct mode as there's not a head, so it was actually diffing against the empty tree and so not removing any deleted files. Get the sha of the current branch instead, which is the same thing Command.Sync does. --- Command/Proxy.hs | 3 ++- debian/changelog | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Command/Proxy.hs b/Command/Proxy.hs index 97cfafeaf2..d38a94b46b 100644 --- a/Command/Proxy.hs +++ b/Command/Proxy.hs @@ -41,7 +41,8 @@ start (c:ps) = liftIO . exitWith =<< ifM isDirect where go tmp = do oldref <- fromMaybe Git.Sha.emptyTree - <$> inRepo Git.Ref.headSha + <$> (inRepo . maybe Git.Ref.headSha Git.Ref.sha + =<< inRepo Git.Branch.currentUnsafe) setuptmpworktree tmp exitcode <- proxy tmp diff --git a/debian/changelog b/debian/changelog index 3470f5ce4e..d154787966 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,7 @@ git-annex (5.20150732) UNRELEASED; urgency=medium * proxy: If a non-proxied git command, such as git revert would normally fail because of unstaged files in the work tree, make the proxied command fail the same way. + * proxy: Fix removal of files deleted by the proxied command. -- Joey Hess Fri, 31 Jul 2015 12:31:39 -0400