From: Junio C Hamano <gitster@pobox•com>
To: Jeff King <peff@peff•net>
Cc: Dave Olszewski <cxreg@pobox•com>, git@vger•kernel.org
Subject: Re: [PATCH 2/2] builtin/push.c: make push_default a static variable
Date: Tue, 17 Feb 2015 14:16:30 -0800 [thread overview]
Message-ID: <xmqqzj8cyyip.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: 20150217182324.GA12816@peff.net
Jeff King <peff@peff•net> writes:
>> So we probably would do something similar to @{push} side, which
>> would mean that push_default variable and the logic needs to be
>> visible to remote.c if we want to have the helper that is similar to
>> set_merge() that is used from branch_get() to support @{upstream}.
>
> Sure, we could go that way. But I don't think it changes the issue for
> _this_ patch series, which is that the variable needs visibility outside
> of builtin/push.c (and we need to load the config for programs besides
> git-push).
I do not disagree. push_default and other things that affect the
computation needs to be visible to the code that implements the
logic.
Do you want to resurrect that @{publish} stuff? I think it had
sensible semantics, and I do not think we mind keeping the
push_default configuration to be read from the default_config
codepath.
If we decide to go that route, then the series would become
something like this:
$gmane/263871 [1/4] git_push_config: drop cargo-culted wt_status pointer
$gmane/263878 [2/4] cmd_push: set "atomic" bit directly
$gmane/263879 [3/4] cmd_push: pass "flags" pointer to config callback
$gmane/263880 [4/4] push: allow --follow-tags to be set by config push.followTags
omitting the original 2/2 patch we are discussing. I am inclined to
replace what I queued with the above four.
The last one needs a bit of tweaking and should look like the
attached. Again, as you wrote in $gmane/263880, this is just a
preview. Dave should send the final when he thinks it is good,
possibly with some tests.
-- >8 --
From: Dave Olszewski <cxreg@pobox•com>
Date: Mon, 16 Feb 2015 01:16:19 -0500
Subject: [PATCH] [NEEDSACK] push: allow --follow-tags to be set by config push.followTags
Signed-off-by: Dave Olszewski <cxreg@pobox•com>
Signed-off-by: Junio C Hamano <gitster@pobox•com>
---
Documentation/config.txt | 6 ++++++
Documentation/git-push.txt | 5 ++++-
builtin/push.c | 10 ++++++++++
contrib/completion/git-completion.bash | 1 +
4 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index ae6791d..e01d21c 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -2079,6 +2079,12 @@ new default).
--
+push.followTags::
+ If set to true enable '--follow-tags' option by default. You
+ may override this configuration at time of push by specifying
+ '--no-follow-tags'.
+
+
rebase.stat::
Whether to show a diffstat of what changed upstream since the last
rebase. False by default.
diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt
index ea97576..caa187b 100644
--- a/Documentation/git-push.txt
+++ b/Documentation/git-push.txt
@@ -128,7 +128,10 @@ already exists on the remote side.
Push all the refs that would be pushed without this option,
and also push annotated tags in `refs/tags` that are missing
from the remote but are pointing at commit-ish that are
- reachable from the refs being pushed.
+ reachable from the refs being pushed. This can also be specified
+ with configuration variable 'push.followTags'. For more
+ information, see 'push.followTags' in linkgit:git-config[1].
+
--signed::
GPG-sign the push request to update refs on the receiving
diff --git a/builtin/push.c b/builtin/push.c
index bba22b8..57c138b 100644
--- a/builtin/push.c
+++ b/builtin/push.c
@@ -473,11 +473,21 @@ static int option_parse_recurse_submodules(const struct option *opt,
static int git_push_config(const char *k, const char *v, void *cb)
{
+ int *flags = cb;
int status;
status = git_gpg_config(k, v, NULL);
if (status)
return status;
+
+ if (!strcmp(k, "push.followtags")) {
+ if (git_config_bool(k, v))
+ *flags |= TRANSPORT_PUSH_FOLLOW_TAGS;
+ else
+ *flags &= ~TRANSPORT_PUSH_FOLLOW_TAGS;
+ return 0;
+ }
+
return git_default_config(k, v, NULL);
}
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index c21190d..cffb2b8 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2188,6 +2188,7 @@ _git_config ()
pull.octopus
pull.twohead
push.default
+ push.followTags
rebase.autosquash
rebase.stat
receive.autogc
--
2.3.0-283-g21bf3f5
next prev parent reply other threads:[~2015-02-17 22:16 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-16 3:01 [PATCH] push: allow --follow-tags to be set by config push.followTags Dave Olszewski
2015-02-16 5:20 ` Jeff King
2015-02-16 5:45 ` [PATCH 0/2] clean up push config callbacks Jeff King
2015-02-16 5:46 ` [PATCH 1/2] git_push_config: drop cargo-culted wt_status pointer Jeff King
2015-02-16 5:47 ` [PATCH 2/2] builtin/push.c: make push_default a static variable Jeff King
2015-02-16 5:57 ` Junio C Hamano
2015-02-17 10:46 ` Jeff King
2015-02-17 17:45 ` Junio C Hamano
2015-02-17 18:23 ` Jeff King
2015-02-17 22:16 ` Junio C Hamano [this message]
2015-02-18 18:50 ` Jeff King
2015-02-18 19:08 ` Junio C Hamano
2015-02-18 19:25 ` Jeff King
2015-02-18 19:50 ` Junio C Hamano
2015-02-18 20:03 ` Jeff King
2015-02-16 5:54 ` [PATCH 3/2] push: allow --follow-tags to be set by config push.followTags Jeff King
2015-02-16 6:02 ` Junio C Hamano
2015-02-16 6:10 ` [PATCH 0/3] cleaner bit-setting in cmd_push Jeff King
2015-02-16 6:12 ` [PATCH 1/3] cmd_push: set "atomic" bit directly Jeff King
2015-02-16 6:13 ` [PATCH 2/3] cmd_push: pass "flags" pointer to config callback Jeff King
2015-02-16 7:05 ` Junio C Hamano
2015-02-16 7:16 ` Jeff King
2015-02-16 6:16 ` [PATCH 3/3] push: allow --follow-tags to be set by config push.followTags Jeff King
2015-03-14 6:06 ` Junio C Hamano
2015-03-14 17:34 ` Jeff King
2015-03-14 17:50 ` Dave Olszewski
2015-03-14 22:08 ` Junio C Hamano
2015-02-16 6:11 ` [PATCH 3/2] " Junio C Hamano
2015-02-16 6:17 ` Jeff King
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=xmqqzj8cyyip.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox$(echo .)com \
--cc=cxreg@pobox$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
--cc=peff@peff$(echo .)net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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