summaryrefslogtreecommitdiff
path: root/doc/bugs/Git_annexed_files_symlink_are_wrong_when_submodule_is_not_in_the_same_path.mdwn
blob: f7bae3b4b1327d75a51508f3c03a4b9382bf0384 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Hi,
I already have told about that in a comment here <http://git-annex.branchable.com/bugs/submodule_path_problem/#comment-e86330d15b714a41a07b6548fbc79bb2>, but I am not sure it will be seen.

Then here is an official bug report.
### Please describe the problem.

I have a problem with submodules when the git repository is not a submodule everywhere.

For instance, if A is a git annexed repository and B another git repository. If B adds A as submodules. The symlinks added in A as submodule won't work in the original A.

### What steps will reproduce the problem?

    # creating the master repository
    mkdir annex_master
    cd annex_master/
    git init
    # hack: adding a file to create the master branch
    touch start
    git add start
    git commit -m "start"
    cd ..
    # create another repository
    mkdir annex_sub
    cd annex_sub/
    git init
    # hack: adding a file to create the master branch
    touch start
    git add start
    git commit -m "start"
    # it is a annexed repository
    git annex init sub
    # add the other repository as submodule of the master one
    cd ../annex_master/
    git submodule add ../annex_sub/ module
    cd module/
    git annex init sub_module
    git annex sync origin
    # add an annexed file
    echo test > test
    git annex add
    git annex sync
    # go back to the origin repository
    cd ../../annex_sub/
    git annex sync
    ls -l
This returns test -> ../.git/modules/module/annex/objects/w8/pv/SHA256E-s5--f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2/SHA256E-s5--f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2

Actually, the file committed is correct. But the fact it points to '../.git/modules/module/...' makes the link work only if the repository is also a submodule and if this submodule is also located in the modules folder in the parent git repository.

I tried playing with making the repository direct and then indirect, hoping that would fix the symlinks, but it did not work.
### What version of git-annex are you using? On what operating system?

    $ git-annex version
    git-annex version: 4.20130802
    ...

    $ git --version
    git version 1.8.3.2

	$ uname -a
	Linux konixwork 3.9-1-amd64 #1 SMP Debian 3.9.8-1 x86_64 GNU/Linux

### Please provide any additional information below.

[[!tag confirmed]]