git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Pranit Bauva <pranit.bauva@gmail.com>
To: cornelius.weig@tngtech.com
Cc: Git List <git@vger.kernel.org>, Jeff King <peff@peff.net>,
	novalis@novalis.org, Duy Nguyen <pclouds@gmail.com>
Subject: Re: [PATCH] tag: add tag.createReflog option
Date: Wed, 25 Jan 2017 10:36:24 +0530	[thread overview]
Message-ID: <CAFZEwPM9MWHQAie8KT+4LKdk-tHVJBCLP46HNcLJm5PHM=AWQg@mail.gmail.com> (raw)
In-Reply-To: <20170125001906.13916-1-cornelius.weig@tngtech.com>

Hey Cornelius,

On Wed, Jan 25, 2017 at 5:49 AM,  <cornelius.weig@tngtech.com> wrote:
> From: Cornelius Weig <cornelius.weig@tngtech.com>
>
> Git does not create a history for tags, in contrast to common
> expectation to simply version everything. This can be changed by using
> the `--create-reflog` flag when creating the tag. However, a config
> option to enable this behavior by default is missing.
>
> This commit adds the configuration variable `tag.createReflog` which
> enables reflogs for new tags by default.
>
> Signed-off-by: Cornelius Weig <cornelius.weig@tngtech.com>

You have also added the option --no-create-reflog so would it be worth
to mention it in the commit message?
> ---
>  Documentation/config.txt  |  5 +++++
>  Documentation/git-tag.txt |  8 +++++---
>  builtin/tag.c             |  6 +++++-
>  t/t7004-tag.sh            | 14 ++++++++++++++
>  4 files changed, 29 insertions(+), 4 deletions(-)
>
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index af2ae4c..9e5f6f6 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -2945,6 +2945,11 @@ submodule.alternateErrorStrategy
>         as computed via `submodule.alternateLocation`. Possible values are
>         `ignore`, `info`, `die`. Default is `die`.
>
> +tag.createReflog::
> +       A boolean to specify whether newly created tags should have a reflog.
> +       If `--[no-]create-reflog` is specified on the command line, it takes
> +       precedence. Defaults to `false`.

This follows the convention, good! :)

>  tag.forceSignAnnotated::
>         A boolean to specify whether annotated tags created should be GPG signed.
>         If `--annotate` is specified on the command line, it takes
> diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt
> index 5055a96..f2ed370 100644
> --- a/Documentation/git-tag.txt
> +++ b/Documentation/git-tag.txt
> @@ -13,7 +13,7 @@ SYNOPSIS
>         <tagname> [<commit> | <object>]
>  'git tag' -d <tagname>...
>  'git tag' [-n[<num>]] -l [--contains <commit>] [--points-at <object>]
> -       [--column[=<options>] | --no-column] [--create-reflog] [--sort=<key>]
> +       [--column[=<options>] | --no-column] [--[no-]create-reflog] [--sort=<key>]
>         [--format=<format>] [--[no-]merged [<commit>]] [<pattern>...]
>  'git tag' -v <tagname>...
>
> @@ -149,8 +149,10 @@ This option is only applicable when listing tags without annotation lines.
>         all, 'whitespace' removes just leading/trailing whitespace lines and
>         'strip' removes both whitespace and commentary.
>
> ---create-reflog::
> -       Create a reflog for the tag.
> +--[no-]create-reflog::
> +       Force to create a reflog for the tag, or no reflog if `--no-create-reflog`
> +       is used. Unless the `tag.createReflog` config variable is set to true, no
> +       reflog is created by default. See linkgit:git-config[1].
>
>  <tagname>::
>         The name of the tag to create, delete, or describe.
> diff --git a/builtin/tag.c b/builtin/tag.c
> index 73df728..1f13e4d 100644
> --- a/builtin/tag.c
> +++ b/builtin/tag.c
> @@ -30,6 +30,7 @@ static const char * const git_tag_usage[] = {
>
>  static unsigned int colopts;
>  static int force_sign_annotate;
> +static int create_reflog;
>
>  static int list_tags(struct ref_filter *filter, struct ref_sorting *sorting, const char *format)
>  {
> @@ -165,6 +166,10 @@ static int git_tag_config(const char *var, const char *value, void *cb)
>                 force_sign_annotate = git_config_bool(var, value);
>                 return 0;
>         }
> +       if (!strcmp(var, "tag.createreflog")) {
> +               create_reflog = git_config_bool(var, value);
> +               return 0;
> +       }
>
>         if (starts_with(var, "column."))
>                 return git_column_config(var, value, "tag", &colopts);
> @@ -325,7 +330,6 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
>         const char *object_ref, *tag;
>         struct create_tag_options opt;
>         char *cleanup_arg = NULL;
> -       int create_reflog = 0;
>         int annotate = 0, force = 0;
>         int cmdmode = 0, create_tag_object = 0;
>         const char *msgfile = NULL, *keyid = NULL;
> diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh
> index 1cfa8a2..67b39ec 100755
> --- a/t/t7004-tag.sh
> +++ b/t/t7004-tag.sh
> @@ -90,6 +90,20 @@ test_expect_success '--create-reflog does not create reflog on failure' '
>         test_must_fail git reflog exists refs/tags/mytag
>  '
>
> +test_expect_success 'option tag.createreflog creates reflog by default' '
> +       test_when_finished "git tag -d tag_with_reflog" &&
> +       git config tag.createReflog true &&
> +       git tag tag_with_reflog &&
> +       git reflog exists refs/tags/tag_with_reflog
> +'
> +
> +test_expect_success 'option tag.createreflog overridden by command line' '
> +       test_when_finished "git tag -d tag_without_reflog" &&
> +       git config tag.createReflog true &&
> +       git tag --no-create-reflog tag_without_reflog &&
> +       test_must_fail git reflog exists refs/tags/tag_without_reflog
> +'
> +
>  test_expect_success 'listing all tags if one exists should succeed' '
>         git tag -l &&
>         git tag
> --
> 2.10.2
>

  reply	other threads:[~2017-01-25  5:06 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-25  0:19 [PATCH] tag: add tag.createReflog option cornelius.weig
2017-01-25  5:06 ` Pranit Bauva [this message]
2017-01-25 18:00 ` Jeff King
2017-01-25 18:10   ` Junio C Hamano
2017-01-25 21:21   ` Cornelius Weig
2017-01-25 21:33     ` Jeff King
2017-01-25 21:43       ` Junio C Hamano
2017-01-25 22:56         ` Junio C Hamano
2017-01-25 23:40           ` Cornelius Weig
2017-01-26  1:16       ` [PATCH] refs: add option core.logAllRefUpdates = always cornelius.weig
2017-01-26  1:16         ` cornelius.weig
2017-01-26  3:35           ` Jeff King
2017-01-26 14:06             ` Cornelius Weig
2017-01-26 14:46               ` Jeff King
2017-01-26 22:31             ` [PATCH v2 1/3] config: add markup to core.logAllRefUpdates doc cornelius.weig
2017-01-26 22:31               ` [PATCH v2 2/3] refs: add option core.logAllRefUpdates = always cornelius.weig
2017-01-26 23:39                 ` Junio C Hamano
2017-01-26 22:31               ` [PATCH v2 3/3] update-ref: add test cases for bare repository cornelius.weig
2017-01-26 23:41                 ` Junio C Hamano
2017-01-26 23:24               ` [PATCH v2 1/3] config: add markup to core.logAllRefUpdates doc Junio C Hamano
2017-01-27 10:09                 ` [PATCH v3 " cornelius.weig
2017-01-27 10:09                   ` [PATCH v3 2/3] refs: add option core.logAllRefUpdates = always cornelius.weig
2017-01-30 21:58                     ` Junio C Hamano
2017-01-30 22:57                       ` Junio C Hamano
2017-01-31 13:16                         ` Cornelius Weig
2017-01-31 17:11                           ` Junio C Hamano
2017-01-30 23:37                       ` Jeff King
2017-01-31 14:00                         ` Cornelius Weig
2017-01-31 18:21                           ` Jeff King
2017-01-31 17:08                         ` Junio C Hamano
2017-01-31 20:28                           ` Cornelius Weig
2017-01-31 22:02                             ` Junio C Hamano
2017-01-27 10:09                   ` [PATCH v3 3/3] update-ref: add test cases for bare repository cornelius.weig

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='CAFZEwPM9MWHQAie8KT+4LKdk-tHVJBCLP46HNcLJm5PHM=AWQg@mail.gmail.com' \
    --to=pranit.bauva@gmail.com \
    --cc=cornelius.weig@tngtech.com \
    --cc=git@vger.kernel.org \
    --cc=novalis@novalis.org \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    /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).