Skip to content

Commit 3d3098a

Browse files
Doc git_config_submodules
1 parent 67046f3 commit 3d3098a

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

doc/Git_workflow.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ Note: actually `git status` does not tell you that you are on commit `master~10`
142142
* `echo "gitdir: Path/To/Tasky/.git/modules/external/project_utils" > .git`
143143

144144

145-
## Provided Git aliases ##
145+
## Provided commands and Git aliases ##
146146
### sclone ###
147147
`git sclone` should be used instead of `git clone` when working with this framework. It will download and configure submodules as expected by the framework.
148148

@@ -153,3 +153,10 @@ We need `git sclone` in order to handle "diamond-shaped dependencies". For examp
153153
* we modify `std_e`, submodule of `My_project`, then commit the change. The git working tree of `std_e` is now at v1.
154154

155155
Now for both `Maia` and `My_project`, the dependency `std_e` needs to be seen has changed to v1. For `My project`, this works out-of-the box since `std_e` is located at `My_project/external/std_e`. But for Maia, we would expect a kind of symbolic link from `My_project/external/Maia/external/std_e` to `My_project/external/std_e` to be informed, when inside `My_project/external/Maia`, that `std_e` has been modified. This is actually exactly what is put in place by `git sclone` (the git equivalent of a symbolic link actually being that `My_project/external/Maia/external/std_e/.git` contains the line `gitdir: My_project/.git/modules/std_e`).
156+
157+
### git\_config\_submodules ###
158+
`git sclone` is in reality mostly a chaining of:
159+
* `git clone`
160+
* `cd $cloned_repo`
161+
* `git submodule update --init`
162+
* `git_config_submodules`

0 commit comments

Comments
 (0)