From: "Zoltán Füzesi" <zfuzesi@eaglet.hu>
To: git@vger.kernel.org
Subject: Re: [RFC/PATCH v3] tag: display original sha1 of deleted/overwritten tag
Date: Thu, 10 Dec 2009 15:09:49 +0100 [thread overview]
Message-ID: <9ab80d150912100609m29bf4862yc7b1abd680c96c54@mail.gmail.com> (raw)
In-Reply-To: <1260453537-6156-1-git-send-email-zfuzesi@eaglet.hu>
Forget v2 and v3, v1 is the good one. Sorry.
2009/12/10 Zoltán Füzesi <zfuzesi@eaglet.hu>:
> It makes possible to undo accidental tag deletion and overwriting.
>
> Signed-off-by: Zoltán Füzesi <zfuzesi@eaglet.hu>
> ---
> This patch was created in response to this feature request:
> http://article.gmane.org/gmane.comp.version-control.git/135016
> I named it "RFC" because of the overwriting part.
>
> v3: works when tag object is created (I should slow down...)
>
> builtin-tag.c | 10 ++++++----
> 1 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/builtin-tag.c b/builtin-tag.c
> index c479018..1404a0e 100644
> --- a/builtin-tag.c
> +++ b/builtin-tag.c
> @@ -140,7 +140,7 @@ static int delete_tag(const char *name, const char *ref,
> {
> if (delete_ref(ref, sha1, 0))
> return 1;
> - printf("Deleted tag '%s'\n", name);
> + printf("Deleted tag '%s' %s\n", name, sha1_to_hex(sha1));
> return 0;
> }
>
> @@ -363,7 +363,7 @@ static int parse_msg_arg(const struct option *opt, const char *arg, int unset)
> int cmd_tag(int argc, const char **argv, const char *prefix)
> {
> struct strbuf buf = STRBUF_INIT;
> - unsigned char object[20], prev[20];
> + unsigned char object[20], prev[20], tag_object[20];
> char ref[PATH_MAX];
> const char *object_ref, *tag;
> struct ref_lock *lock;
> @@ -472,13 +472,15 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
>
> if (annotate)
> create_tag(object, tag, &buf, msg.given || msgfile,
> - sign, prev, object);
> + sign, prev, tag_object);
>
> lock = lock_any_ref_for_update(ref, prev, 0);
> if (!lock)
> die("%s: cannot lock the ref", ref);
> - if (write_ref_sha1(lock, object, NULL) < 0)
> + if (write_ref_sha1(lock, annotate ? tag_object : object, NULL) < 0)
> die("%s: cannot update the ref", ref);
> + else if (force && hashcmp(object, prev))
> + printf("Overwritten tag '%s' (%s)\n", ref, sha1_to_hex(prev));
>
> strbuf_release(&buf);
> return 0;
> --
> 1.6.6.rc2
>
>
prev parent reply other threads:[~2009-12-10 14:09 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-10 12:34 [RFC/PATCH] tag: display original sha1 of deleted/overwritten tag Zoltán Füzesi
2009-12-10 13:26 ` [RFC/PATCH v2] " Zoltán Füzesi
2009-12-10 13:58 ` [RFC/PATCH v3] " Zoltán Füzesi
2009-12-10 14:09 ` Zoltán Füzesi [this message]
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=9ab80d150912100609m29bf4862yc7b1abd680c96c54@mail.gmail.com \
--to=zfuzesi@eaglet.hu \
--cc=git@vger.kernel.org \
/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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox