All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/7] submodule groups
@ 2016-05-11  0:59 Stefan Beller
  2016-05-11  0:59 ` [PATCH 1/7] submodule--helper: add valid-label-name Stefan Beller
                   ` (8 more replies)
  0 siblings, 9 replies; 30+ messages in thread
From: Stefan Beller @ 2016-05-11  0:59 UTC (permalink / raw)
  To: jrnieder, gitster, Jens.Lehmann; +Cc: git, pclouds, Stefan Beller

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

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2016-05-12 16:53 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-11  0:59 [PATCH 0/7] submodule groups Stefan Beller
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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.