Updated Home (textile)
[git-submod-enhancements.wiki.git] / Home.textile
1 *Welcome to the git-submod-enhancements wiki!*
2
3 As Dscho put it, submodules are the "neglected ugly duckling" of git. Time to change that ...
4
5 *Issues currently being worked on*
6
7 * [[Recursive submodule checkout]]: teach all work tree manipulating commands to update the submodule work trees according to the commit recorded in the superproject.
8 * Teach @git mv@ to not only move the gitlink and the work tree but also update core.worktree and the gitfile
9 * Teach @git fetch@ to also fetch commits for submodule not currently in the work tree into .git/modules/<name>
10 * Make the @git submodule@ script run in non top-level directories too
11
12 *Issues still to be tackled*
13
14 * Add functionality to move the .git directory of a submodule into the .git/modules directory of the superproject (either by adding a new @git submodule@ command or by providing a script in contrib/)
15 * Add a git-config aware merge driver and make it the default for .gitmodules
16 * Attempt a 3-way merge when @git mv@, @git rm@ or @git submodule add@ want to change a .gitmodules file which has unstaged changes
17 * Add configuration options (global, per repo and per submodule) to set the default of @git push --recurse-submodules@
18 * Add an option to @git submodule add@ to move the .git directory of a local repository to be added as submodule into the .git/modules directory of the superproject
19 * Teach @grep@ the @--recursive@ option
20 * Add means to specify which submodules shall be populated on clone (which I'd like to implement by teaching @git fetch@ to create submodule repos in .git/modules, recursive checkout will then do the rest)
21 * Showing that a submodule has a HEAD not on any branch in the @git status@ of the superproject
22 * @gitk@: Add popup menu for submodules to see the detailed history of changes
23 * Teach @git prune@ the @--recurse-submodules@ option (and maybe honour the same default and options @git fetch@ uses)
24 * Better support for displaying merge conflicts of submodules
25 * @git gui@: Add submodule menu for adding and fetching submodules
26 * @git status@ should call @git diff --submodule --ignore-submodules=dirty@ instead of @git submodule summary@ for providing a submodule summary when configured to do so.
27 * Other commands that could benefit from a @--recurse-submodules@ option: @archive@, @branch@, @clean@, @commit@, @revert@, @tag@.
28 * To enable history rewriting @git filter-branch@ could write a list of rewritten commits which can then be used to update submodule commits in a superproject.
29
30 In the long run, git-submodule.sh should be converted to a rather simple wrapper script around core Git functionality, as more and more of that is implemented in the git core.
31
32 *Submodule related bugs to fix*
33
34 * Cherry picking across submodule creation fails even if the cherry pick doesn't touch any file in the submodules path
35 * @git submodule add@ doesn't record the URL in .git/config when the submodule path doesn't exist.
36
37 *[[Issues already solved and merged into Junio's Repo|history]]*