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 5/6] git-reflog: add create and exists functions
Date: Thu, 25 Jun 2015 14:01:36 -0700 [thread overview]
Message-ID: <xmqq1tgzy027.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1435265110-6414-5-git-send-email-dturner@twopensource.com> (David Turner's message of "Thu, 25 Jun 2015 16:45:09 -0400")
David Turner <dturner@twopensource.com> writes:
Because...???
> These are necessary because ref backends manage reflogs.
"Because ref backends manage reflogs" may be a good explanation to
implement something as part of ref API, but it does not explain why
that something needs to be implemented in the first place.
> In a moment,
> we will use these functions to make git stash work with alternate
> ref backends.
>
> Signed-off-by: David Turner <dturner@twopensource.com>
> ---
> builtin/reflog.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
> 1 file changed, 78 insertions(+), 1 deletion(-)
>
> diff --git a/builtin/reflog.c b/builtin/reflog.c
> index c2eb8ff..a64158d 100644
> --- a/builtin/reflog.c
> +++ b/builtin/reflog.c
> @@ -13,6 +13,10 @@ static const char reflog_expire_usage[] =
> "git reflog expire [--expire=<time>] [--expire-unreachable=<time>] [--rewrite] [--updateref] [--stale-fix] [--dry-run | -n] [--verbose] [--all] <refs>...";
> static const char reflog_delete_usage[] =
> "git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] <refs>...";
> +static const char reflog_create_usage[] =
> +"git reflog create <refs>...";
It makes sense to take more than one; you may want to prepare more
than one, and you would signal error by exiting with a non-zero
status if any of them failed.
> +static const char reflog_exists_usage[] =
> +"git reflog exists <refs>...";
This is iffy, though. "git reflog exists foo bar" says "all of them
exist" or "some of them exist"? Why is it more useful to implement
"all of them exist"?
Perhaps dropping "..." would be simpler to explain and less
confusing.
> @@ -699,12 +703,79 @@ static int cmd_reflog_delete(int argc, const char **argv, const char *prefix)
> return status;
> }
>
> +static int cmd_reflog_create(int argc, const char **argv, const char *prefix)
> +{
> + int i, status = 0, start = 0;
> + struct strbuf err = STRBUF_INIT;
> +
> + for (i = 1; i < argc; i++) {
> + const char *arg = argv[i];
> + if (!strcmp(arg, "--")) {
> + i++;
> + break;
> + }
> + else if (arg[0] == '-')
> + usage(reflog_create_usage);
> + else
> + break;
> + }
> +
> + start = i;
> +
> + if (argc - start < 1)
> + return error("Nothing to create?");
> +
> + for (i = start ; i < argc; i++) {
s/start ;/start;/ (everywhere).
next prev parent reply other threads:[~2015-06-25 21:01 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
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 [this message]
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=xmqq1tgzy027.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.