From: Junio C Hamano <gitster@pobox.com>
To: Michael Haggerty <mhagger@alum.mit.edu>
Cc: "Stefan Beller" <sbeller@google.com>,
"Ronnie Sahlberg" <ronniesahlberg@gmail.com>,
"Jonathan Nieder" <jrnieder@gmail.com>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"Jeff King" <peff@peff.net>,
git@vger.kernel.org
Subject: Re: [PATCH v2 5/7] reflog: improve and update documentation
Date: Mon, 02 Mar 2015 14:04:59 -0800 [thread overview]
Message-ID: <xmqqfv9n9htg.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <1425288597-20547-6-git-send-email-mhagger@alum.mit.edu> (Michael Haggerty's message of "Mon, 2 Mar 2015 10:29:55 +0100")
Michael Haggerty <mhagger@alum.mit.edu> writes:
> +Reference logs, or "reflogs", record when the tips of branches and
> +other references were updated in the local repository. Reflogs are
> +useful in various Git commands, to specify the old value of a
> +reference. For example, `HEAD@{2}` means "where HEAD used to be two
> +moves ago", `master@{one.week.ago}` means "where master used to point
> +to one week ago", and so on. See linkgit:gitrevisions[7] for more
> +details.
Looks very good, especially the part that mentions "in the local
repository". It seems to be a common novice misunderstanding what
`master@{one.week.ago}` means, and it might be beneficial to be more
verbose by saying "where master used to point to one week ago in
this local repository".
> +The "expire" subcommand prunes older reflog entries. Entries older
> +than `expire` time, or entries older than `expire-unreachable` time
> +and not reachable from the current tip, are removed from the reflog.
> +This is typically not used directly by end users -- instead, see
> +linkgit:git-gc[1].
> +
> +The "delete" subcommand deletes single entries from the reflog. Its
> +argument must be an _exact_ entry (e.g. "`git reflog delete
> +master@{2}`").
Just like "expire", "delete" should be accompanied by the same
"typically not". I do not think it is even worth mentioning that it
exists merely as an implementation detail for likgit:git-stash[1]
and for no other reason.
> +Options for `expire` and/or `delete`
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I think this started from a hope that these two share many, but
looking at the result I notice the shared ones are a tiny and
trivial minority. It probably makes sense to retitle this section
"Options for expire" (and remove "For the expire command only"), and
add an "Options for delete" section immediately after it that looks
like:
Options for `delete`
~~~~~~~~~~~~~~~~~~~~
--updateref::
--rewrite::
--dry-run::
The `delete` command takes these options whose
meanings are the same as those for `expire`.
> diff --git a/builtin/reflog.c b/builtin/reflog.c
> index 49c64f9..dd68a72 100644
> --- a/builtin/reflog.c
> +++ b/builtin/reflog.c
> @@ -13,9 +13,9 @@
> */
>
> static const char reflog_expire_usage[] =
> -"git reflog expire [--verbose] [--dry-run] [--stale-fix] [--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>...";
> +"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 [--verbose] [--dry-run] [--rewrite] [--updateref] <refs>...";
> +"git reflog delete [--rewrite] [--updateref] [--dry-run | -n] [--verbose] <refs>...";
>
> static unsigned long default_reflog_expire;
> static unsigned long default_reflog_expire_unreachable;
Thanks for being complete, but I sense that it may be time we
switched to parse-options here, which gives us the help string for
free. Perhaps throw in a comment line before this hunk
/* NEEDSWORK: switch to parse-options */
or something to leave hint for other people?
Thanks.
next prev parent reply other threads:[~2015-03-02 22:05 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-02 9:29 [PATCH v2 0/7] Fix some problems with reflog expiration Michael Haggerty
2015-03-02 9:29 ` [PATCH v2 1/7] write_ref_sha1(): remove check for lock == NULL Michael Haggerty
2015-03-02 9:29 ` [PATCH v2 2/7] write_ref_sha1(): Move write elision test to callers Michael Haggerty
2015-03-02 9:29 ` [PATCH v2 3/7] lock_ref_sha1_basic(): do not set force_write for missing references Michael Haggerty
2015-03-02 9:29 ` [PATCH v2 4/7] struct ref_lock: delete the force_write member Michael Haggerty
2015-03-02 21:44 ` Junio C Hamano
2015-03-03 10:50 ` Michael Haggerty
2015-03-02 9:29 ` [PATCH v2 5/7] reflog: improve and update documentation Michael Haggerty
2015-03-02 22:04 ` Junio C Hamano [this message]
2015-03-03 11:35 ` Michael Haggerty
2015-03-02 9:29 ` [PATCH v2 6/7] reflog_expire(): ignore --updateref for symbolic references Michael Haggerty
2015-03-02 9:29 ` [PATCH v2 7/7] reflog_expire(): never update a reference to null_sha1 Michael Haggerty
2015-03-02 22:09 ` [PATCH v2 0/7] Fix some problems with reflog expiration Junio C Hamano
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=xmqqfv9n9htg.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=mhagger@alum.mit.edu \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
--cc=ronniesahlberg@gmail.com \
--cc=sbeller@google.com \
--cc=sunshine@sunshineco.com \
/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.