This specifier represents the number of each commit in the output stream. Signed-off-by: Alexander Shishkin <ash@xxxxxxxxxxxxx> --- Documentation/pretty-formats.txt | 3 ++- pretty.c | 5 +++++ 2 files changed, 7 insertions(+), 1 deletions(-) diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt index 1686a54..7b0cab1 100644 --- a/Documentation/pretty-formats.txt +++ b/Documentation/pretty-formats.txt @@ -137,7 +137,8 @@ The placeholders are: - '%%': a raw '%' - '%x00': print a byte from a hex code - '%w([<w>[,<i1>[,<i2>]]])': switch line wrapping, like the -w option of - linkgit:git-shortlog[1]. + linkgit:git-shortlog[1] +- '%O': number of the record in the output. NOTE: Some placeholders may depend on other options given to the revision traversal engine. For example, the `%g*` reflog options will diff --git a/pretty.c b/pretty.c index 7cb3a2a..3e3d399 100644 --- a/pretty.c +++ b/pretty.c @@ -11,6 +11,7 @@ #include "reflog-walk.h" static char *user_format; +static int record_number; static void save_user_format(struct rev_info *rev, const char *cp, int is_tformat) { @@ -639,6 +640,9 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder, /* these are independent of the commit */ switch (placeholder[0]) { + case 'O': + strbuf_addf(sb, "%d", record_number); + return 1; case 'C': if (placeholder[1] == '(') { const char *end = strchr(placeholder + 2, ')'); @@ -899,6 +903,7 @@ void format_commit_message(const struct commit *commit, context.wrap_start = sb->len; strbuf_expand(sb, format, format_commit_item, &context); rewrap_message_tail(sb, &context, 0, 0, 0); + record_number++; } static void pp_header(enum cmit_fmt fmt, -- 1.7.0.4 -- 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