Fix bug importing from a special remote into a subdirectory more than one level deep
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.
This commit is contained in:
parent
4a387eda54
commit
4611813ef1
4 changed files with 29 additions and 13 deletions
|
@ -100,3 +100,5 @@ supported repository versions: 8
|
|||
upgrade supported from repository versions: 0 1 2 3 4 5 6 7
|
||||
local repository version: 8
|
||||
```
|
||||
|
||||
> [[fixed|done]], thanks for an excellent test case. --[[Joey]]
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
[[!comment format=mdwn
|
||||
username="joey"
|
||||
subject="""comment 4"""
|
||||
date="2021-03-26T18:46:19Z"
|
||||
content="""
|
||||
Note that level1/level2 is sufficient for git-annex to generate the bad
|
||||
tree. I also saw git merge fail at that depth.
|
||||
|
||||
I've fixed this, at least the test case given and some other similar ones
|
||||
I thought of to try.
|
||||
"""]]
|
Loading…
Add table
Add a link
Reference in a new issue