8fec62d299
Now that this is handled correctly, git-annex can be used in git submodules. Also, fixed infelicity where Git.CurrentRepo and Git.Config.updateLocation were both dealing with core.worktree. Now updateLocation handles it for Local as well as for LocalUnknown repos.
56 lines
1.5 KiB
Markdown
56 lines
1.5 KiB
Markdown
If a submodule isn't toplevel, git-annex breaks
|
|
|
|
**What steps will reproduce the problem?**
|
|
|
|
Make two non-empty repositories:
|
|
|
|
mkdir submod
|
|
cd submod
|
|
git init
|
|
touch README && git add README
|
|
git commit -a -m "first import of submodule"
|
|
cd ..
|
|
|
|
mkdir test
|
|
cd test
|
|
git init
|
|
touch README && git add README
|
|
git commit -a -m "first import of master"
|
|
|
|
Add first repository as a non-toplevel submodule:
|
|
|
|
git submodule add ../submod lib/submod
|
|
|
|
Setup git-annex for the submodule inside the other repository:
|
|
|
|
cd lib/submod
|
|
git annex init
|
|
|
|
**What is the expected output? What do you see instead?**
|
|
|
|
Expected:
|
|
|
|
init ok
|
|
(Recording state in git...)
|
|
|
|
Got:
|
|
|
|
init fatal: Could not switch to '../../../../lib': No such file or directory
|
|
git-annex: git config [Param "annex.uuid",Param "55D974D1-73E8-489E-B454-03D164664C82"] failed
|
|
|
|
|
|
**What version of git-annex are you using? On what operating system?**
|
|
|
|
3.20121011 compiled from git on Mac OS X 10.8
|
|
|
|
|
|
**Please provide any additional information below.**
|
|
|
|
* git-annex read the path from the "worktree" variable in the git config.
|
|
* The git config for a submodule is storen in the main repository, e.g. "../../.git/modules/lib/submod/config"
|
|
* The path in that config is relative to the config file: "worktree = ../../../../lib/submod"
|
|
* Git-annex expect the path to be relative to the current directory, which is why it fails.
|
|
|
|
> Impressive analysis, thanks. I've fixed handling of relative
|
|
> core.worktree. [[done]] --[[Joey]]
|
|
|