From: Stefan Beller <sbeller@google.com>
To: git@vger.kernel.org, gitster@pobox.com, Jens.Lehmann@web.de,
jrnieder@gmail.com, sschuberth@gmail.com
Cc: Stefan Beller <sbeller@google.com>
Subject: [RFC/PATCH 0/5] [WAS: Submodule Groups] Labels and submodule.autoInitialize
Date: Fri, 22 Jan 2016 16:31:38 -0800 [thread overview]
Message-ID: <1453509103-16470-1-git-send-email-sbeller@google.com> (raw)
This series introduces labels which you can attach to submodules like so:
$ cat .gitmodules
[submodule "gcc"]
path = gcc
url = git://...
label = default
label = devel
[submodule "linux"]
path = linux
url = git://...
label = default
$ git submodule add --name emacs --label "editor" --label default git://...
# If upstream has submodules properly labeled, you can make use of them:
$ git config --add submodule.autoInitialize "*default"
$ git config --add submodule.autoInitialize ":name"
$ git config --add submodule.autoInitialize "./by/path"
# The prefix * denotes a label as found in .gitmodules
# : goes before names
# path are prefixed ./ currently
# both path and names need work
# no --init necessary, partially initializes submodules (only those which
# were specified by label, name or path)
$ git submodule update
# time passes, upstream may have added new submodules and we get them without
# extra commands!
$ git submodule update
# The above configuration can be given to git clone directly via:
$ git clone --init-submodule=*labelA ...
Why?
====
If you have lots of submodules, you probably don't need all of them at once,
but you have functional units. Some submodules are absolutely required,
some are optional and only for very specific purposes.
Changes to the previous version with groups:
====
* it's called labels now (it's easier to imagine to attach more than one
label to a submodule than having it in more groups)
* In .git/config we have another name, too ("submodule.autoInitialize")
* Support for more than just groups, but also names and paths are supported
(in a very rudimentary way though)
This series applies on top of sb/submodule-init, or can be found at
https://github.com/stefanbeller/git/tree/submodule-groups-v3
Thanks,
Stefan
Stefan Beller (5):
submodule init: Write submodule registration to stderr
git submodule: Teach add to label submodules
submodule-config: keep labels around
submodule update: respect submodule.autoInitialize
builtin/clone: Configure submodule.autoInitialize via --init-submodule
Documentation/git-clone.txt | 6 ++
Documentation/git-submodule.txt | 5 +-
builtin/clone.c | 40 +++++++++-
builtin/submodule--helper.c | 58 +++++++++++++-
git-submodule.sh | 14 +++-
submodule-config.c | 15 ++++
submodule-config.h | 2 +
t/t7400-submodule-basic.sh | 165 ++++++++++++++++++++++++++++++++++++++++
8 files changed, 298 insertions(+), 7 deletions(-)
--
2.7.0.rc0.42.g77a36b9.dirty
next reply other threads:[~2016-01-23 0:31 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-23 0:31 Stefan Beller [this message]
2016-01-23 0:31 ` [PATCH 1/5] submodule init: Write submodule registration to stderr Stefan Beller
2016-01-23 0:31 ` [PATCH 2/5] git submodule: Teach add to label submodules Stefan Beller
2016-01-23 0:31 ` [PATCH 3/5] submodule-config: keep labels around Stefan Beller
2016-01-24 18:06 ` Sebastian Schuberth
2016-01-25 18:06 ` Stefan Beller
2016-01-23 0:31 ` [PATCH 4/5] submodule update: respect submodule.autoInitialize Stefan Beller
2016-01-23 0:31 ` [PATCH 5/5] builtin/clone: Configure submodule.autoInitialize via --init-submodule Stefan Beller
2016-01-24 19:38 ` [RFC/PATCH 0/5] [WAS: Submodule Groups] Labels and submodule.autoInitialize Jens Lehmann
2016-01-25 18:59 ` Stefan Beller
2016-01-26 20:59 ` Jens Lehmann
2016-01-26 21:50 ` Stefan Beller
2016-01-31 21:09 ` Jens Lehmann
2016-02-01 20:21 ` Stefan Beller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1453509103-16470-1-git-send-email-sbeller@google.com \
--to=sbeller@google.com \
--cc=Jens.Lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=sschuberth@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).