From 69b92b22d9a80055c94d687b7f0810f82776624a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 2 Apr 2015 01:18:00 -0400 Subject: Fix truncation of parameters that could occur when using xargs git-annex. This will only ever result in a few more git-ls-files being run than were run before. (Only 1 more is really needed, but around 10 more are currently run for a max length command line.) So, no need to worry about the extra zombie, or lost laziness due to concat. --- CmdLine/Seek.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'CmdLine/Seek.hs') diff --git a/CmdLine/Seek.hs b/CmdLine/Seek.hs index b5726f53e..1db075ec3 100644 --- a/CmdLine/Seek.hs +++ b/CmdLine/Seek.hs @@ -215,8 +215,8 @@ seekActions gen = do seekHelper :: ([FilePath] -> Git.Repo -> IO ([FilePath], IO Bool)) -> [FilePath] -> Annex [FilePath] seekHelper a params = do - ll <- inRepo $ \g -> - runSegmentPaths (\fs -> Git.Command.leaveZombie <$> a fs g) params + ll <- inRepo $ \g -> concat <$> forM (segmentXargsOrdered params) + (runSegmentPaths (\fs -> Git.Command.leaveZombie <$> a fs g)) forM_ (map fst $ filter (null . snd) $ zip params ll) $ \p -> unlessM (isJust <$> liftIO (catchMaybeIO $ getSymbolicLinkStatus p)) $ error $ p ++ " not found" -- cgit v1.2.3