From: Junio C Hamano <gitster@pobox.com>
To: David Turner <dturner@twopensource.com>
Cc: git@vger.kernel.org, mhagger@alum.mit.edu
Subject: Re: [PATCH v2 4/6] refs: add safe_create_reflog function
Date: Thu, 25 Jun 2015 14:02:26 -0700 [thread overview]
Message-ID: <xmqqwpyrwlgd.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1435265110-6414-4-git-send-email-dturner@twopensource.com> (David Turner's message of "Thu, 25 Jun 2015 16:45:08 -0400")
David Turner <dturner@twopensource.com> writes:
> Make log_ref_setup private, and add public safe_create_reflog which
> calls log_ref_setup.
>
> In a moment, we will use safe_create_reflog to add reflog creation
> commands to git-reflog.
>
> Signed-off-by: David Turner <dturner@twopensource.com>
> ---
> builtin/checkout.c | 4 +---
> refs.c | 11 +++++++++++
> refs.h | 2 +-
> 3 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/builtin/checkout.c b/builtin/checkout.c
> index 93f63d3..b793670 100644
> --- a/builtin/checkout.c
> +++ b/builtin/checkout.c
> @@ -621,7 +621,6 @@ static void update_refs_for_switch(const struct checkout_opts *opts,
> if (opts->new_orphan_branch) {
> if (opts->new_branch_log && !log_all_ref_updates) {
> int temp;
> - struct strbuf log_file = STRBUF_INIT;
> int ret;
> const char *ref_name;
> struct strbuf err = STRBUF_INIT;
> @@ -629,9 +628,8 @@ static void update_refs_for_switch(const struct checkout_opts *opts,
> ref_name = mkpath("refs/heads/%s", opts->new_orphan_branch);
> temp = log_all_ref_updates;
> log_all_ref_updates = 1;
> - ret = log_ref_setup(ref_name, &log_file, &err);
> + ret = safe_create_reflog(ref_name, &err);
> log_all_ref_updates = temp;
> - strbuf_release(&log_file);
> if (ret) {
> fprintf(stderr, _("Can not do reflog for '%s'. %s\n"),
> opts->new_orphan_branch, err.buf);
Yup, much nicer ;-)
> diff --git a/refs.c b/refs.c
> index de7b5ef..7b02c45 100644
> --- a/refs.c
> +++ b/refs.c
> @@ -3171,6 +3171,17 @@ int log_ref_setup(const char *refname, struct strbuf *sb_logfile, struct strbuf
> return 0;
> }
>
> +
> +int safe_create_reflog(const char *refname, struct strbuf *err)
> +{
> + int ret;
> + struct strbuf sb = STRBUF_INIT;
> +
> + ret = log_ref_setup(refname, &sb, err);
> + strbuf_release(&sb);
> + return ret;
> +}
> +
> static int log_ref_write_fd(int fd, const unsigned char *old_sha1,
> const unsigned char *new_sha1,
> const char *committer, const char *msg)
> diff --git a/refs.h b/refs.h
> index debdefc..2986aac 100644
> --- a/refs.h
> +++ b/refs.h
> @@ -228,7 +228,7 @@ int pack_refs(unsigned int flags);
> /*
> * Setup reflog before using. Fill in err and return -1 on failure.
> */
> -int log_ref_setup(const char *refname, struct strbuf *logfile, struct strbuf *err);
> +int safe_create_reflog(const char *refname, struct strbuf *err);
>
> /** Reads log for the value of ref during at_time. **/
> extern int read_ref_at(const char *refname, unsigned int flags,
next prev parent reply other threads:[~2015-06-25 21:02 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-25 20:45 [PATCH v2 1/6] refs.c: add err arguments to reflog functions David Turner
2015-06-25 20:45 ` [PATCH v2 2/6] cherry-pick: treat CHERRY_PICK_HEAD and REVERT_HEAD as refs David Turner
2015-06-25 21:11 ` Junio C Hamano
2015-06-25 22:29 ` David Turner
2015-06-25 20:45 ` [PATCH v2 3/6] bisect: use refs infrastructure for BISECT_START David Turner
2015-06-25 20:52 ` Junio C Hamano
2015-06-25 23:21 ` David Turner
2015-06-26 0:22 ` David Turner
2015-06-25 20:45 ` [PATCH v2 4/6] refs: add safe_create_reflog function David Turner
2015-06-25 21:02 ` Junio C Hamano [this message]
2015-06-25 20:45 ` [PATCH v2 5/6] git-reflog: add create and exists functions David Turner
2015-06-25 21:01 ` Junio C Hamano
2015-06-25 21:51 ` David Turner
2015-06-25 20:45 ` [PATCH v2 6/6] git-stash: use git-reflog instead of creating files David Turner
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=xmqqwpyrwlgd.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=dturner@twopensource.com \
--cc=git@vger.kernel.org \
--cc=mhagger@alum.mit.edu \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.