2012-10-15 13:36:15 +00:00
|
|
|
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.
|
|
|
|
|
2012-10-16 04:02:14 +00:00
|
|
|
> Impressive analysis, thanks. I've fixed handling of relative
|
|
|
|
> core.worktree. [[done]] --[[Joey]]
|
2012-10-15 13:36:15 +00:00
|
|
|
|