clone`.)
A single combined diff, containing all the changes, follows.
---- git-annex-8.20210223.orig/COPYRIGHT
-+++ git-annex-8.20210223/COPYRIGHT
+--- git-annex-8.20210803.orig/COPYRIGHT
++++ git-annex-8.20210803/COPYRIGHT
@@ -69,6 +69,10 @@ License: GPL-2
The full text of version 2 of the GPL is distributed in
/usr/share/common-licenses/GPL-2 on Debian systems.
License: BSD-2-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
---- git-annex-8.20210223.orig/Git/Tree.hs
-+++ git-annex-8.20210223/Git/Tree.hs
-@@ -300,43 +300,43 @@ graftTree'
- -> Repo
- -> MkTreeHandle
- -> IO Sha
--graftTree' subtree graftloc basetree repo hdl = go basetree graftdirs
-+graftTree' subtree graftloc basetree repo hdl = go basetree subdirs graftdirs
- where
-- go tsha (topmostgraphdir:restgraphdirs) = do
-+ go tsha (subdir:restsubdirs) (topmostgraphdir:restgraphdirs) = do
- Tree t <- getTree LsTree.LsTreeNonRecursive tsha repo
-- t' <- case partition isabovegraft t of
-+ let abovegraftpoint i = gitPath i == gitPath subdir
-+ t' <- case partition abovegraftpoint t of
-+ -- the graft point is not already in the tree,
-+ -- so graft it in, keeping the existing tree
-+ -- content
- ([], _) -> do
- graft <- graftin (topmostgraphdir:restgraphdirs)
- return (graft:t)
-- -- normally there can only be one matching item
-- -- in the tree, but it's theoretically possible
-- -- for a git tree to have multiple items with the
-- -- same name, so process them all
- (matching, rest) -> do
- newshas <- forM matching $ \case
- RecordedSubTree tloc tsha' _
- | null restgraphdirs -> return $
- RecordedSubTree tloc subtree []
- | otherwise -> do
-- tsha'' <- go tsha' restgraphdirs
-+ tsha'' <- go tsha' restsubdirs restgraphdirs
- return $ RecordedSubTree tloc tsha'' []
- _ -> graftin (topmostgraphdir:restgraphdirs)
- return (newshas ++ rest)
- mkTree hdl t'
-- go _ [] = return subtree
--
-- isabovegraft i = beneathSubTree i graftloc || gitPath i == gitPath graftloc
-+ go _ _ [] = return subtree
-
- graftin t = recordSubTree hdl $ graftin' t
- graftin' [] = RecordedSubTree graftloc subtree []
- graftin' (d:rest)
- | d == graftloc = graftin' []
- | otherwise = NewSubTree d [graftin' rest]
--
-+
-+ subdirs = splitDirectories $ gitPath graftloc
-+
- -- For a graftloc of "foo/bar/baz", this generates
- -- ["foo", "foo/bar", "foo/bar/baz"]
- graftdirs = map (asTopFilePath . toInternalGitPath . encodeBS) $
-- mkpaths [] $ splitDirectories $ gitPath graftloc
-+ mkpaths [] subdirs
- mkpaths _ [] = []
- mkpaths base (d:rest) = (joinPath base </> d) : mkpaths (base ++ [d]) rest
-
---- git-annex-8.20210223.orig/git-annex.cabal
-+++ git-annex-8.20210223/git-annex.cabal
-@@ -322,7 +322,7 @@ Executable git-annex
+--- git-annex-8.20210803.orig/git-annex.cabal
++++ git-annex-8.20210803/git-annex.cabal
+@@ -327,7 +327,7 @@ Executable git-annex
unix-compat (>= 0.5),
SafeSemaphore,
async,