From: Stefan Beller <sbeller@google.com>
To: jrnieder@gmail.com, gitster@pobox.com, Jens.Lehmann@web.de
Cc: git@vger.kernel.org, pclouds@gmail.com,
Stefan Beller <sbeller@google.com>
Subject: [PATCH 0/7] submodule groups
Date: Tue, 10 May 2016 17:59:50 -0700 [thread overview]
Message-ID: <1462928397-1708-1-git-send-email-sbeller@google.com> (raw)
I started from scratch as I think there were some sharp edges in the design.
My thinking shifted from "submodule groups" towards "actually it's just an
enhanced pathspec, called submodulespec".
The meat is found in the last 3 patches.
What is this series about?
==========================
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.
This patch series adds labels to submodules in the .gitmodules file.
So you could have a .gitmodules file such as:
[submodule "gcc"]
path = gcc
url = git://...
label = default
label = devel
[submodule "linux"]
path = linux
url = git://...
label = default
[submodule "nethack"]
path = nethack
url = git://...
label = optional
label = games
and by this series you can work on an arbitrary group of these submodules
composed by the labels, names or paths of the submodules.
git clone --init-submodule=\*<label> --init-submodule=:<name> git://...
# will clone the superproject checkout
# any submodule being labeled <label> or named <name>
git submodule add --label <name> git://... ..
# record a label while adding a submodule
git submodule update [--init] \*label2
# update only the submodules labeled "label2"
git config submodule.updateGroups default
git config --add submodule.updateGroups devel
# configure which submodules you are interested in....
git submodule update [--init-default-group]
# ... and update them
git status
git diff
git submodule summary
# unlike the last series, these are not touched
git submodule status \*label2
# only show information about "label2" submodules.
Any feedback welcome, specially on the design level!
Thanks,
Stefan
Prior series found here: http://thread.gmane.org/gmane.comp.version-control.git/292666
Stefan Beller (7):
submodule--helper: add valid-label-name
submodule add: label submodules if asked to
submodule-config: keep labels around
submodule-config: check if a submodule is in a group
submodule--helper module_list_compute: allow label or name arguments
submodule update: learn partial initialization
clone: allow specification of submodules to be cloned
Documentation/config.txt | 5 ++
Documentation/git-clone.txt | 26 ++++--
Documentation/git-submodule.txt | 30 +++++--
builtin/clone.c | 40 ++++++++-
builtin/submodule--helper.c | 146 +++++++++++++++++++++++++++---
git-submodule.sh | 38 ++++++--
submodule-config.c | 66 ++++++++++++++
submodule-config.h | 5 ++
t/t7400-submodule-basic.sh | 176 ++++++++++++++++++++++++++++++++++++
t/t7412-submodule--helper.sh | 193 ++++++++++++++++++++++++++++++++++++++++
10 files changed, 692 insertions(+), 33 deletions(-)
create mode 100755 t/t7412-submodule--helper.sh
--
2.8.0.35.g58985d9.dirty
next reply other threads:[~2016-05-11 1:00 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-11 0:59 Stefan Beller [this message]
2016-05-11 0:59 ` [PATCH 1/7] submodule--helper: add valid-label-name Stefan Beller
2016-05-11 1:11 ` Junio C Hamano
2016-05-11 0:59 ` [PATCH 2/7] submodule add: label submodules if asked to Stefan Beller
2016-05-11 1:13 ` Junio C Hamano
2016-05-11 17:26 ` Stefan Beller
2016-05-11 0:59 ` [PATCH 3/7] submodule-config: keep labels around Stefan Beller
2016-05-11 1:15 ` Junio C Hamano
2016-05-11 17:41 ` Stefan Beller
2016-05-11 21:28 ` Junio C Hamano
2016-05-11 21:39 ` Stefan Beller
2016-05-11 0:59 ` [PATCH 4/7] submodule-config: check if a submodule is in a group Stefan Beller
2016-05-11 1:19 ` Junio C Hamano
2016-05-11 0:59 ` [PATCH 5/7] submodule--helper module_list_compute: allow label or name arguments Stefan Beller
2016-05-11 1:29 ` Junio C Hamano
2016-05-11 2:24 ` Junio C Hamano
2016-05-11 0:59 ` [PATCH 6/7] submodule update: learn partial initialization Stefan Beller
2016-05-11 0:59 ` [PATCH 7/7] clone: allow specification of submodules to be cloned Stefan Beller
2016-05-11 2:08 ` [PATCH 0/7] submodule groups Junio C Hamano
2016-05-11 23:07 ` Stefan Beller
2016-05-11 23:39 ` Junio C Hamano
2016-05-11 23:48 ` Junio C Hamano
2016-05-11 23:57 ` Stefan Beller
2016-05-12 0:00 ` Junio C Hamano
2016-05-12 4:33 ` Junio C Hamano
2016-05-12 5:50 ` Junio C Hamano
2016-05-12 15:32 ` Stefan Beller
2016-05-12 15:58 ` Junio C Hamano
2016-05-12 16:35 ` Stefan Beller
2016-05-12 16:53 ` Junio C Hamano
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1462928397-1708-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=pclouds@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.
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 NNTP newsgroup(s).