Updated Home (textile)
[git-submod-enhancements.wiki.git] / Home.textile
index 274a23b590d4ac5799ee9dcb04be8141605cb7be..8b1aaf49241a4da6375f5601377811a972a714cc 100644 (file)
@@ -2,49 +2,35 @@
 
 As Dscho put it, submodules are the "neglected ugly duckling" of git. Time to change that ...
 
-*Issues still to be tackled in this repo:*
+*Issues currently being worked on*
 
-* Let @am@, @bisect@, @checkout@, @checkout-index@, @cherry-pick@, @merge@, @pull@, @read-tree@, @rebase@, @reset@ & @stash@ work recursively on submodules (in progress)
+* [[Recursive submodule checkout]]: teach all work tree manipulating commands to update the submodule work trees according to the commit recorded in the superproject.
+* Teach @git mv@ to not only move the gitlink and the work tree but also update core.worktree and the gitfile
+* Teach @git fetch@ to also fetch commits for submodule not currently in the work tree into .git/modules/<name>
+* Make the @git submodule@ script run in non top-level directories too
+
+*Issues still to be tackled in this repo*
+
+* 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/)
+* Add configuration options (global, per repo and per submodule) to set the default of @git push --recurse-submodules@
+* 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
 * Teach @grep@ the @--recursive@ option
-* Add means to specify which submodules shall be populated on clone
+* 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)
 * Showing that a submodule has a HEAD not on any branch in @git status@
 * @gitk@: Add popup menu for submodules to see the detailed history of changes
 * Teach @git prune@ the @--recurse-submodules@ option (and maybe honour the same default and options @git fetch@ uses)
 * Better support for displaying merge conflicts of submodules
 * @git gui@: Add submodule menu for adding and fetching submodules
 * @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.
-* Add an "always-tip" mode
 * Other commands that could benefit from a @--recurse-submodules@ option: @archive@, @branch@, @clean@, @commit@, @revert@, @tag@.
-* 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.
+* 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.
+
+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.
 
 *Submodule related bugs to fix*
 
+* @git fetch@ doesn't fetch referenced commits after a submodule rename
 * Cherry picking across submodule creation fails even if the cherry pick doesn't touch any file in the submodules path
 * @git submodule add@ doesn't record the URL in .git/config when the submodule path doesn't exist.
-* @git rebase --continue@ won't work if the commit only contains submodule changes.
-
-*Issues already solved and merged into Junio's Repo:*
-
-* Since git 1.6.6:
-** New --submodule option to "git diff" (many thanks to Dscho for writing the core part!)
-** Display of submodule summaries instead of plain hashes in git gui and gitk
-* Since git 1.7.0:
-** "git status" and "git diff*" show submodules with untracked or modified files in their work tree as "dirty"
-** git gui: New popup menu for submodule diffs
-* Since git 1.7.1:
-** Show the reason why working directories of submodules are dirty (untracked content and/or modified content) in superproject
-* Since git 1.7.2:
-** Add parameters to the "--ignore-submodules" option for "git diff" and "git status" to control when a submodule is considered dirty
-* Since git 1.7.3:
-** Add the "ignore" config option for the default behaviour of "git diff" and "git status". Both .git/config and .gitmodules are parsed for this option, the value set in .git/config. will override that from .gitmodules
-** Add a global config option to control when a submodule is considered dirty (written by Dscho)
-** Better support for merging of submodules (thanks to Heiko Voigt for writing that)
-* Since git 1.7.4:
-** Recursive fetching of submodules can be enabled via command line option or configuration.
-* Since git 1.7.5:
-** fetch runs recursively on submodules by default when new commits have been recorded for them in the superproject
-* Since git 1.7.7:
-** git push learned the --recurse-submodules=check option which errors out when trying to push a superproject commit where the submodule changes are not pushed (part of Frederik Gustafsson's 2011 GSoC project)
-* Since git 1.7.8:
-** The "update" option learned the value "none" which disables "submodule init" and "submodule update"
-** The git directory of a newly cloned submodule is stored in the .git directory of the superproject, the submodules work tree contains only a gitfile. This is the first step towards recursive checkout, as it enables us to remove a submodule directory (part of Frederik Gustafsson's 2011 GSoC project)
\ No newline at end of file
+
+*[[Issues already solved and merged into Junio's Repo|history]]*