aboutsummaryrefslogtreecommitdiff
path: root/doc/submodules.mdwn
blob: 74668085dc649939f112b0f9a9fe52b1ff734e4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Git submodules](http://git-scm.com/book/en/v2/Git-Tools-Submodules) are
supported by git-annex since version 5.20150303.

Git normally makes a `.git` **file** in a
submodule, that points to the real git repository under `.git/modules/`.
This presents problems for git-annex. So, when used in a submodule,
git-annex will automatically replace the `.git` file with a symlink
pointing at the git repository. (When the filesystem doesn't support
symlinks, direct mode is used, and submodules are supported in that
setup too.)

With that taken care of, git-annex should work ok in submodules. Although
this is a new and somewhat experimental feature.

The conversion of .git file to .git symlink mostly won't bother git.

Known problems:

* If you want to delete a whole submodule, `git rm submodule`
  will refuse to delete it, complaining that the
  submodule "uses a .git directory". Workaround: Use `rm -rf`
  to delete the tree, and then `git commit`.