From a8bc269f11b34e60f5fdbd8e831a654dd6b6b67e Mon Sep 17 00:00:00 2001 From: Dave Olszewski Date: Mon, 16 Feb 2015 01:16:19 -0500 Subject: [PATCH] push: allow --follow-tags to be set by config push.followTags Signed-off-by: Dave Olszewski Helped-by: Jeff King Signed-off-by: Junio C Hamano --- 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 ae6791db12..e01d21cda2 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 ea9757692a..caa187be06 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 bba22b86b9..57c138bd7b 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 c21190d751..cffb2b8d66 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.11.4.GIT