Now you can ask for a revision range master@{2.weeks.ago..1.day.ago} or even something like HEAD@{20..yesterday} It does this by allocating an strbuf to construct the second ref string (in the above examples "master@{1.day.ago}" and "HEAD@{yesterday}", respectively), which is never free()d. Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- Another nail in the coffin of libification, but for the common one-shot command, it is the easiest way to support reflog ranges. revision.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/revision.c b/revision.c index 6e85aaa..3e7a834 100644 --- a/revision.c +++ b/revision.c @@ -794,10 +794,24 @@ int handle_revision_arg(const char *arg, struct rev_info *revs, const char *this = arg; int symmetric = *next == '.'; unsigned int flags_exclude = flags ^ UNINTERESTING; + const char *at; *dotdot = 0; next += symmetric; + at = strstr(arg, "@{"); + if (at && !strchr(at + 2, '}')) { + struct strbuf buf; + strcpy(dotdot, "}"); + strbuf_init(&buf, 0); + strbuf_insert(&buf, 0, arg, at + 2 - arg); + if (!strcmp(next, "}")) + strbuf_addch(&buf, '0'); + strbuf_addstr(&buf, next); + /* we will not free() this buffer */ + next = buf.buf; + } + if (!*next) next = "HEAD"; if (dotdot == arg) -- 1.5.4.rc2.5.g44b6d-dirty - 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