Thread (13 messages) flat view 13 messages, 3 authors, 2016-06-15

Re: [PATCH] Add git-submodule command

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:43:12

Hi,

On Fri, 25 May 2007, Lars Hjemli wrote:
Btw: testing this quickly becomes tedious, so I'll try to make a proper 
testscript later tonight.
Very good.
+'git-submodule' [--init | --update | --cached] [--quiet] [--] [<path>...]
I did not realize this earlier, but we seem to have more and more programs 
where actions are specified without "--", i.e. "git-svn fetch", or 
"git-bundle create".

I actually like that, to separate actions from options. Hmm?
+-i, --init::
+	Initialize the specified submodules, i.e. clone the git repository
+	specified in .gitmodules and checkout the sha1 specified in the
+	index.
How about "Initialize the submodules...", and then another sentence "If 
you do not want to initialize all submodules, you can specify the subset 
to initialize"?
+-u, --update::
+	Update the specified submodules, i.e. checkout the sha1 specified
+	in the index
The full stop is missing here. And again, I would add another sentence 
"Submodules which have not been initialized are not touched by this 
operation."
+FILES
+-----
+When cloning submodules, a .gitmodules file in the top-level directory
+of the containing work-tree is examined for the url of each submodule.
+The url is the value of the key module.$path.url.
IIRC Junio talked about a name for overriding. But I think it would be 
even better to to override by mapping the URLs from .gitmodules to the 
locally-wanted URLs.

Junio?
+When updating submodules, the same .gitmodules file is examined for a key
+named 'module.$path.branch'. If found, and if the named branch is currently 
+at the same revision as the commit-id in the containing repositories index, 
+the specified branch will be checked out in the submodule. If not found, or 
+if the branch isn't currently positioned at the wanted revision, a checkout
+of the wanted sha1 will happen in the submodule, leaving its HEAD detached.
A very good description, and I think this is the only method to checkout 
the submodule which makes sense. (Just maybe default the value of 
module.<path>.branch to "master"?)
quoted hunk ↗ jump to hunk
+++ b/git-submodule.sh
@@ -0,0 +1,178 @@
+#!/bin/sh
+#
+# git-submodules.sh: init, update or list git submodules
+#
+# Copyright (c) 2007 Lars Hjemli
+
+USAGE='[--init | --update | --cached] [--quiet] [--] [<path>...]'
+. git-sh-setup
+require_work_tree
Maybe

	test -f "$GIT_DIR"/.gitmodules || die "Not a superproject"

Hmm?
+			rmdir "$path" 2>/dev/null ||
Just out of curiousity: is rmdir portable? I always used "rm -r"...
+case "$init,$update,$cached" in
+1,,)
+	modules_init $@
+	;;
:-)

Now I run out of comments...

Ciao,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help