summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CmdLine/Seek.hs4
-rw-r--r--debian/changelog1
-rw-r--r--doc/bugs/feeding_git_annex_with_xargs_can_fail.mdwn2
3 files changed, 5 insertions, 2 deletions
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"
diff --git a/debian/changelog b/debian/changelog
index dbea98877..6b88aa228 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -24,6 +24,7 @@ git-annex (5.20150328) UNRELEASED; urgency=medium
for distributed fsck.
* Significantly sped up processing of large numbers of directories
passed to a single git-annex command.
+ * Fix truncation of parameters that could occur when using xargs git-annex.
-- Joey Hess <id@joeyh.name> Fri, 27 Mar 2015 16:04:43 -0400
diff --git a/doc/bugs/feeding_git_annex_with_xargs_can_fail.mdwn b/doc/bugs/feeding_git_annex_with_xargs_can_fail.mdwn
index 729d0d2fb..ebbc1e7e9 100644
--- a/doc/bugs/feeding_git_annex_with_xargs_can_fail.mdwn
+++ b/doc/bugs/feeding_git_annex_with_xargs_can_fail.mdwn
@@ -5,6 +5,8 @@ Feeding git-annex a long list off directories, eg with xargs can have
ls-files command is longer than the git-annex command often, so it gets
truncated and some files are not processed.
+ > [[fixed|done]] --[[Joey]]
+
* It can take a really long time for git-annex to chew through the
git-ls-files results. There is probably an exponential blowup in the time
relative to the number of parameters. Some of the stuff being done to