From: Phil Hord <phil.hord@gmail.com>
To: "W. Trevor King" <wking@tremily.us>, git@vger.kernel.org
Subject: Re: [PATCH] git-submodule add: Record branch name in .gitmodules
Date: Wed, 24 Oct 2012 14:12:18 -0400 [thread overview]
Message-ID: <CABURp0rpPqeTJMYXmgMG2CmU=SzzvCMeX46rnMVB0EeB_LXPiA@mail.gmail.com> (raw)
In-Reply-To: <20121022225546.GO23101@odin.tremily.us>
On Mon, Oct 22, 2012 at 6:55 PM, W. Trevor King <wking@tremily.us> wrote:
> On a tangentially related note, it would be nice to set environment
> variables for each of the settings in submodule.$name during a foreach
> call. Then you could use
>
> git submodule foreach 'git checkout $branch && git pull'
>
> Perhaps you'd want to blacklist/whitelist or downcase settings names
> to avoid things like
>
> [submodule "foo"]
> PATH = /my/rootkit/
>
> but the update line is much cleaner.
This is ugly as can be, but it works in my meagre testing. It defines
"submodule_path=/my/rootkit/" for the above bit of .gitmodules. That
is, it adds definitions for 'submodule_<var-name>' for each <var-name>
in .gitmodules in submodule.$name.<var-name>, but <var-name> is
lowercased and defanged (everything that's not already [a-z0-9] is
replaced with underscore). For example,
git submodule foreach 'echo $submodule_url'
--- >8 ---
diff --git c/git-submodule.sh i/git-submodule.sh
index 6dd2338..79b3467 100755
--- c/git-submodule.sh
+++ i/git-submodule.sh
@@ -416,7 +416,15 @@ cmd_foreach()
prefix="$prefix$sm_path/"
clear_local_git_env
# we make $path available to scripts ...
path=$sm_path
+
+ # make all submodule variables
available to scripts
+ eval $(git config -f .gitmodules
--get-regexp "^submodule\.${name}\..*" |
+ sed -e "s|^submodule\.${name}\.||" |
+ while read VAR_NAME VAR_VALUE ; do
+ VAR_NAME=$(printf '%s'
"$VAR_NAME" | tr A-Z a-z | sed -e 's/^[^a-z]/_/' -e 's/[^a-z0-9]/_/g')
+ printf 'submodule_%s=%s;\n'
"$VAR_NAME" "'$VAR_VALUE'"
+ done)
cd "$sm_path" &&
eval "$@" &&
if test -n "$recursive"
next prev parent reply other threads:[~2012-10-24 18:12 UTC|newest]
Thread overview: 156+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-22 16:34 [PATCH] git-submodule add: Record branch name in .gitmodules W. Trevor King
[not found] ` <CABURp0pqg7XC6makK2OcundMabV9AtcBNGNK6Q0TMZfJbt3anw@mail.gmail.com>
2012-10-22 22:55 ` W. Trevor King
2012-10-24 18:12 ` Phil Hord [this message]
2012-10-25 1:12 ` W. Trevor King
2012-10-26 13:37 ` Jeff King
2012-10-23 19:16 ` Nahor
2012-10-23 19:44 ` W. Trevor King
2012-10-23 20:44 ` W. Trevor King
2012-10-23 21:57 ` [PATCH v2] git-submodule add: Add -r/--record option W. Trevor King
2012-10-24 19:15 ` Jens Lehmann
2012-10-25 0:53 ` W. Trevor King
2012-10-28 20:48 ` Jens Lehmann
2012-10-28 21:16 ` W. Trevor King
2012-10-28 21:59 ` Shawn Pearce
2012-10-28 22:34 ` W. Trevor King
2012-10-29 5:34 ` Jeff King
2012-10-29 10:45 ` W. Trevor King
2012-10-29 10:58 ` Jeff King
2012-10-29 11:29 ` W. Trevor King
2012-10-29 11:43 ` Jeff King
2012-10-29 17:38 ` Phil Hord
2012-10-29 21:36 ` Jeff King
2012-10-29 22:21 ` Phil Hord
2012-10-29 22:27 ` Jeff King
2012-11-09 3:35 ` [PATCH v3 0/3] " W. Trevor King
2012-11-09 3:35 ` [PATCH v3 1/3] " W. Trevor King
2012-11-09 7:34 ` Junio C Hamano
2012-11-09 16:29 ` Heiko Voigt
2012-11-10 19:02 ` W. Trevor King
2012-11-17 15:04 ` Heiko Voigt
2012-11-17 19:20 ` W. Trevor King
2012-11-17 21:31 ` Heiko Voigt
2012-11-17 22:00 ` W. Trevor King
2012-11-20 0:49 ` Junio C Hamano
2012-11-20 1:16 ` W. Trevor King
2012-11-20 5:39 ` Junio C Hamano
2012-11-20 12:19 ` W. Trevor King
2012-11-20 19:52 ` Junio C Hamano
2012-11-23 15:55 ` Heiko Voigt
2012-11-23 16:23 ` W. Trevor King
2012-11-23 16:30 ` W. Trevor King
2012-11-23 17:54 ` W. Trevor King
2012-11-26 21:00 ` [PATCH v4 0/4] git-submodule add: Add --local-branch option W. Trevor King
2012-11-26 21:00 ` [PATCH v4 1/4] " W. Trevor King
2012-11-26 21:00 ` [PATCH v4 2/4] git-submodule init: Record submodule.<name>.branch in repository config W. Trevor King
2012-11-27 23:19 ` Jens Lehmann
2012-11-28 0:40 ` W. Trevor King
2012-11-30 17:53 ` [RFC] remove/deprecate 'submodule init' and 'sync' W. Trevor King
2012-11-30 18:17 ` W. Trevor King
2012-11-30 23:52 ` Phil Hord
2012-12-01 12:48 ` W. Trevor King
2012-12-01 15:42 ` Jens Lehmann
2012-12-01 15:56 ` Jens Lehmann
2012-12-01 16:37 ` W. Trevor King
2012-12-01 16:45 ` [PATCH] submodule: add 'deinit' command Jens Lehmann
2012-12-02 2:00 ` Junio C Hamano
2012-12-02 19:55 ` Jens Lehmann
2012-12-03 7:58 ` Junio C Hamano
2012-12-04 21:48 ` [PATCH v2] " Jens Lehmann
2012-12-04 23:06 ` Junio C Hamano
2012-12-12 15:08 ` Michael J Gruber
2012-12-12 17:22 ` Jens Lehmann
2012-12-12 19:32 ` Junio C Hamano
2012-12-12 22:25 ` Jens Lehmann
2012-12-12 22:34 ` Junio C Hamano
2012-12-12 23:09 ` W. Trevor King
2012-12-12 23:35 ` Junio C Hamano
2012-12-13 0:28 ` W. Trevor King
2012-12-13 15:47 ` Marc Branchaud
2012-12-01 15:38 ` [RFC] remove/deprecate 'submodule init' and 'sync' Jens Lehmann
2012-12-01 16:30 ` W. Trevor King
2012-12-01 17:25 ` Jens Lehmann
2012-12-01 17:49 ` W. Trevor King
2012-12-01 18:04 ` Jens Lehmann
2012-12-01 18:16 ` W. Trevor King
2012-12-02 19:09 ` W. Trevor King
2012-12-02 20:29 ` Jens Lehmann
2012-12-02 21:11 ` W. Trevor King
2012-12-01 16:54 ` W. Trevor King
2012-12-03 15:38 ` W. Trevor King
2012-11-26 21:00 ` [PATCH v4 3/4] git-submodule update: Add --branch option W. Trevor King
2012-11-27 18:51 ` Heiko Voigt
2012-11-27 20:21 ` W. Trevor King
2012-11-26 21:00 ` [PATCH v4 4/4] Hack fix for 'submodule update does not fetch already present commits' W. Trevor King
2012-11-27 18:31 ` [PATCH v4 0/4] git-submodule add: Add --local-branch option Heiko Voigt
2012-11-27 19:04 ` W. Trevor King
2012-11-27 19:16 ` Heiko Voigt
2012-11-27 19:01 ` W. Trevor King
2012-11-27 21:18 ` [PATCH v4 4/4] Hack fix for 'submodule update does not fetch already present commits' W. Trevor King
2012-11-27 23:28 ` Re: [PATCH v4 0/4] git-submodule add: Add --local-branch option Heiko Voigt
2012-11-28 2:42 ` W. Trevor King
2012-11-29 18:51 ` Phil Hord
2012-11-23 17:24 ` [PATCH v3 1/3] git-submodule add: Add -r/--record option Sascha Cunz
2012-11-23 16:03 ` Heiko Voigt
2012-11-28 13:09 ` [PATCH v4 0/4] git-submodule add: Add --local-branch option (summary) W. Trevor King
2012-11-28 16:53 ` W. Trevor King
2012-11-28 19:30 ` [PATCH v5 0/2] submodule update: add --remote for submodule's upstream changes W. Trevor King
2012-11-28 19:30 ` [PATCH v5 1/2] " W. Trevor King
2012-11-28 19:30 ` [PATCH v5 2/2] submodule add: If --branch is given, record it in .gitmodules W. Trevor King
2012-11-29 16:12 ` [RFC] git-submodule update: Add --commit option W. Trevor King
2012-11-29 16:21 ` W. Trevor King
2012-11-29 16:27 ` W. Trevor King
2012-11-29 19:13 ` [PATCH v5 0/2] submodule update: add --remote for submodule's upstream changes W. Trevor King
2012-11-30 1:11 ` Phil Hord
2012-11-30 3:27 ` W. Trevor King
2012-12-02 3:17 ` [PATCH v6 0/4] " W. Trevor King
2012-12-02 3:17 ` [PATCH v6 1/4] submodule: add get_submodule_config helper funtion W. Trevor King
2012-12-03 19:30 ` Junio C Hamano
2012-12-04 0:17 ` W. Trevor King
2012-12-11 18:58 ` [PATCH v7 0/3] submodule update: add --remote for submodule's upstream changes W. Trevor King
2012-12-11 18:58 ` [PATCH v7 1/3] submodule: add get_submodule_config helper funtion W. Trevor King
2012-12-11 18:58 ` [PATCH v7 2/3] submodule update: add --remote for submodule's upstream changes W. Trevor King
2012-12-12 17:43 ` Phil Hord
2012-12-12 19:54 ` Junio C Hamano
2012-12-12 23:02 ` W. Trevor King
2012-12-19 16:03 ` [PATCH v8 0/3] " wking
2012-12-19 16:03 ` [PATCH v8 1/3] submodule: add get_submodule_config helper funtion wking
2012-12-21 8:20 ` Heiko Voigt
2012-12-21 11:04 ` W. Trevor King
2012-12-19 16:03 ` [PATCH v8 2/3] submodule update: add --remote for submodule's upstream changes wking
2012-12-19 16:03 ` [PATCH v8 3/3] submodule add: If --branch is given, record it in .gitmodules wking
2012-12-19 17:43 ` Junio C Hamano
2012-12-21 8:18 ` [PATCH v8 0/3] submodule update: add --remote for submodule's upstream changes Heiko Voigt
2012-12-11 18:58 ` [PATCH v7 3/3] submodule add: If --branch is given, record it in .gitmodules W. Trevor King
2012-12-12 5:42 ` [PATCH v7 0/3] submodule update: add --remote for submodule's upstream changes Junio C Hamano
2012-12-12 15:24 ` W. Trevor King
2012-12-12 18:19 ` Junio C Hamano
2012-12-12 22:44 ` W. Trevor King
2012-12-02 3:17 ` [PATCH v6 2/4] " W. Trevor King
2012-12-03 16:46 ` Junio C Hamano
2012-12-03 18:15 ` W. Trevor King
2012-12-03 18:38 ` W. Trevor King
2012-12-03 20:29 ` Junio C Hamano
2012-12-02 3:17 ` [PATCH v6 3/4] submodule add: If --branch is given, record it in .gitmodules W. Trevor King
2012-12-02 3:17 ` [PATCH v6 4/4] submodule update: add submodule.<name>.remote config option W. Trevor King
2012-12-02 19:32 ` [PATCH v5 0/2] submodule update: add --remote for submodule's upstream changes Jens Lehmann
2012-11-10 18:44 ` [PATCH v3 1/3] git-submodule add: Add -r/--record option W. Trevor King
2012-11-11 10:33 ` Junio C Hamano
2012-11-11 15:00 ` W. Trevor King
2012-11-17 15:30 ` Heiko Voigt
2012-11-28 19:42 ` W. Trevor King
2012-11-28 20:08 ` Junio C Hamano
[not found] ` <20121109104607.GC4406@ftbfs.org>
2012-11-10 19:11 ` W. Trevor King
2012-11-09 3:35 ` [PATCH v3 2/3] git-submodule foreach: export .gitmodules settings as variables W. Trevor King
2012-11-09 16:45 ` Heiko Voigt
2012-11-10 19:21 ` W. Trevor King
2012-11-09 3:35 ` [PATCH v3 3/3] git-submodule: Motivate --record with an example use case W. Trevor King
2012-10-25 22:14 ` [PATCH v2] git-submodule add: Add -r/--record option W. Trevor King
2012-10-26 14:00 ` Jeff King
2012-10-23 21:45 ` [PATCH] git-submodule add: Record branch name in .gitmodules Nahor
2012-10-23 20:36 ` Jens Lehmann
2012-10-23 20:55 ` W. Trevor King
2012-10-23 22:02 ` Nahor
2012-10-24 19:10 ` Jens Lehmann
-- strict thread matches above, loose matches on Subject: below --
2012-11-28 18:28 [PATCH] submodule update: document exisiting -r form for --rebase W. Trevor King
2012-11-28 19:02 ` 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
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='CABURp0rpPqeTJMYXmgMG2CmU=SzzvCMeX46rnMVB0EeB_LXPiA@mail.gmail.com' \
--to=phil.hord@gmail.com \
--cc=git@vger.kernel.org \
--cc=wking@tremily.us \
/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).