From: "W. Trevor King" <wking@tremily.us>
To: Phil Hord <phil.hord@gmail.com>
Subject: Re: [PATCH] git-submodule add: Record branch name in .gitmodules
Date: Mon, 22 Oct 2012 18:55:46 -0400 [thread overview]
Message-ID: <20121022225546.GO23101@odin.tremily.us> (raw)
In-Reply-To: <CABURp0pqg7XC6makK2OcundMabV9AtcBNGNK6Q0TMZfJbt3anw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2912 bytes --]
On Mon, Oct 22, 2012 at 06:03:53PM -0400, Phil Hord wrote:
> Some projects now use the 'branch' config value to record the tracking
> branch for the submodule. Some ascribe different meaning to the
> configuration if the value is given vs. undefined. For example, see
> the Gerrit submodule-subscription mechanism. This change will cause
> those workflows to behave differently than they do now.
For those to lazy to hunt down a reference, Gerrit uses
submodule.$name.branch to
“indicate the branch of a submodule project that when updated will
trigger automatic update of its registered gitlink.” [1]
They also have some extra sauce:
“The branch value could be '.' if the submodule project branch has
the same name as the destination branch of the commit having
gitlinks/.gitmodules file.
…
Any git submodules which are added and not have the branch field
available in the .gitmodules file will not be subscribed by Gerrit
to automatically update the superproject.”
> I do like the idea, but I wish it had a different name for the
> recording. Maybe --record-branch=${BRANCH} as an extra switch so the
> action is explicitly requested.
>
> git submodule add --branch=master --record-branch=master foo bar
Ugh, I don't want to retype the branch name whenever I do this.
<brainstorming>
How about -r/--record, with the recorded name being optional?
--record-branch[=<recorded_name>]
This would satisfy Gerrit users that wanted to use '.', but also
satisfy me with:
git submodule add -rb=master foo bar
However, there is a change that people would see that, and then use
git submodule add -r -b=master foo bar
which would checkout the HEAD from foo and store `-b=master` in
submodule.$name.branch.
A more verbose, but less dangerous, option would be a boolean
-r/--record that enables the recording of whatever was passed to
-b/--branch. This looses the flexibility of running something like
git submodule add --branch=master --record-branch=. foo bar
but the Gerrit folks have gotten along OK without any branch recording
so far ;). They can keep setting '.' the same way they always have.
</brainstorming>
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.
Cheers,
Trevor
[1]: https://gerrit.googlesource.com/gerrit/+/master/Documentation/user-submodules.txt
--
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2012-10-25 1:04 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 [this message]
2012-10-24 18:12 ` Phil Hord
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=20121022225546.GO23101@odin.tremily.us \
--to=wking@tremily.us \
--cc=phil.hord@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).