4611813ef1
Which generated unusual git trees that could confuse git merge, since they incorrectly had 2 subtrees with the same name. Root of the bug was a) not testing that at all! but also b) confusing graftdirs, which contains eg "foo/bar" with non-recursively read trees, which would contain eg "bar" when reading a subtree of "foo". It's worth noting that Annex.Import uses graftTree, but it really shouldn't have needed to. Eg, when importing into foo/bar from a remote, it's enough to generate a tree of foo/bar/x, foo/bar/y, and does not include other files that are at the top of the master branch. It uses graftTree, so it does include the other files, as well as the foo/bar tree. git merge will do the same thing for both trees. With that said, switching it away from graftTree would result in another import generating a new commit that seems to delete files that were there in a previous commit, so it probably has to keep using graftTree since it used it before. This commit was sponsored by Kevin Mueller on Patreon. |
||
---|---|---|
.. | ||
Command | ||
Remote | ||
AutoCorrect.hs | ||
Branch.hs | ||
BuildVersion.hs | ||
CatFile.hs | ||
CheckAttr.hs | ||
CheckIgnore.hs | ||
Command.hs | ||
Config.hs | ||
ConfigTypes.hs | ||
Construct.hs | ||
Credential.hs | ||
CurrentRepo.hs | ||
DiffTree.hs | ||
DiffTreeItem.hs | ||
Env.hs | ||
FileMode.hs | ||
Filename.hs | ||
FilePath.hs | ||
Fsck.hs | ||
GCrypt.hs | ||
HashObject.hs | ||
History.hs | ||
Hook.hs | ||
Index.hs | ||
LockFile.hs | ||
LsFiles.hs | ||
LsTree.hs | ||
Merge.hs | ||
Objects.hs | ||
Queue.hs | ||
Ref.hs | ||
RefLog.hs | ||
Remote.hs | ||
Repair.hs | ||
Sha.hs | ||
Ssh.hs | ||
Status.hs | ||
Tree.hs | ||
Types.hs | ||
UnionMerge.hs | ||
UpdateIndex.hs | ||
Url.hs | ||
Version.hs |