On Mon, Jul 11, 2016 at 12:48:34PM -0400, Theodore Ts'o wrote: > On Mon, Jul 11, 2016 at 01:05:13AM -0400, Jeff King wrote: > > The "reflog selector" format changes based on a series of > > heuristics, and that applies equally to both stock "log -g" > > output, as well as "--format=%gd". The documentation for > > "%gd" doesn't cover this. Let's mention the multiple formats > > and refer the user back to the "-g" section for the complete > > rules. > > Is it worth mentioning that the shortening only happens if the user > specifies a selector with '/' in it in the first place? I was > confused when I was first playing with these selectors because %gd and > %gD are identical if you run > > git reflog --format=%gd -3 master > git reflog --format=%gD -3 master > > and are only different if you run: > > git reflog --format=%gd -3 refs/heads/master > git reflog --format=%gD -3 refs/heads/master Yeah, I noticed that "shortened" is not really defined when I was writing this. Maybe this on top of the other documentation patches? -- >8 -- Subject: [PATCH] doc/pretty-formats: explain shortening of %gd The actual shortening rules aren't that interesting and probably not worth getting into (I gloss over them here as "shortened for human readability"). But the fact that %gD shows whatever you gave on the command line is subtle and worth mentioning. Since most people will feed a shortened refname in the first place, it otherwise makes it hard to understand the difference between the two. Signed-off-by: Jeff King <peff@xxxxxxxx> --- Documentation/pretty-formats.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt index 36a300a..b95d67e 100644 --- a/Documentation/pretty-formats.txt +++ b/Documentation/pretty-formats.txt @@ -149,9 +149,12 @@ endif::git-rev-list[] - '%GK': show the key used to sign a signed commit - '%gD': reflog selector, e.g., `refs/stash@{1}` or `refs/stash@{2 minutes ago`}; the format follows the rules described - for the `-g` option -- '%gd': shortened reflog selector, e.g., `stash@{1}` or - `stash@{2 minutes ago}` + for the `-g` option. The portion before the `@` is the refname as + given on the command line (so `git log -g refs/heads/master` would + yield `refs/heads/master@{0}`). +- '%gd': shortened reflog selector; same as `%gD`, but the refname + portion is shortened for human readability (so `refs/heads/master` + becomes just `master`). - '%gn': reflog identity name - '%gN': reflog identity name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) -- 2.9.0.406.g77f030d -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html