[PATCH] user-manual: Explain what submodules are good for.
From: Michael Smith <hidden>
Date: 2016-06-15 22:43:36
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
Rework the introduction to the Submodules section to explain why someone would use them, and fix up submodule references from the tree-object and todo sections. Signed-off-by: Michael Smith <redacted> --- Documentation/user-manual.txt | 25 ++++++++++++++----------- 1 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt
index a085ca1..bd77e62 100644
--- a/Documentation/user-manual.txt
+++ b/Documentation/user-manual.txt@@ -2856,8 +2856,7 @@ between two related tree objects, since it can ignore any entries with identical object names. (Note: in the presence of submodules, trees may also have commits as -entries. See gitlink:git-submodule[1] and gitlink:gitmodules.txt[1] -for partial documentation.) +entries. See <<submodules>> for documentation.) Note that the files all have mode 644 or 755: git actually only pays attention to the executable bit.
@@ -3163,12 +3162,18 @@ information as long as you have the name of the tree that it described. Submodules ========== -This tutorial explains how to create and publish a repository with submodules -using the gitlink:git-submodule[1] command. +Some large projects are composed of smaller, self-contained parts. For +example, an embedded Linux distribution's source tree would include every +piece of software in the distribution; a movie player might need to build +against a specific, known-working version of a decompression library; +several independent programs might all share the same build scripts. -Submodules maintain their own identity; the submodule support just stores the -submodule repository location and commit ID, so other developers who clone the -superproject can easily clone all the submodules at the same revision. +Git's submodule support allows a repository to contain, as a subdirectory, a +checkout of an external project. Submodules maintain their own identity; +the submodule support just stores the submodule repository location and +commit ID, so other developers who clone the superproject can easily clone +all the submodules at the same revision. The gitlink:git-submodule[1] +command manages submodules. To see how submodule support works, create (for example) four example repositories that can be used later as a submodule:
@@ -3213,8 +3218,8 @@ The `git submodule add` command does a couple of things: - It clones the submodule under the current directory and by default checks out the master branch. -- It adds the submodule's clone path to the `.gitmodules` file and adds this - file to the index, ready to be committed. +- It adds the submodule's clone path to the gitlink:gitmodules[5] file and + adds this file to the index, ready to be committed. - It adds the submodule's current commit ID to the index, ready to be committed.
@@ -4277,5 +4282,3 @@ Write a chapter on using plumbing and writing scripts. Alternates, clone -reference, etc. git unpack-objects -r for recovery - -submodules
--
1.5.3