Hi, On Thu, 25 May 2006, Junio C Hamano wrote: > "Marco Costalba" <mcostalba@xxxxxxxxx> writes: > > > 2) Unhandled ranges list > > > > The second one is not so easy. > > This is a real regression; I was not aware of the possibility to specify several ranges, mostly because I did not use it that way. However, I think it is worth breaking this in that particular case, since the range handling has become unified with the framework in revision.[ch] > As an easy alternative, we could give --start-number=<n> to > format-patch so that you can do the iteration yourself instead > of having format-patch to iterate over the list. Something like this? --- [PATCH] format-patch: support --start-number=<n> (and --start-number <n>) This option implicitely sets numbered mode and starts the numbering with <n>. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@xxxxxx> --- builtin-log.c | 19 ++++++++++++++++--- 1 files changed, 16 insertions(+), 3 deletions(-) diff --git a/builtin-log.c b/builtin-log.c index c8feb0f..4e3388b 100644 --- a/builtin-log.c +++ b/builtin-log.c @@ -148,6 +148,7 @@ int cmd_format_patch(int argc, const cha int nr = 0, total, i, j; int use_stdout = 0; int numbered = 0; + int start_number = -1; int keep_subject = 0; init_revisions(&rev); @@ -171,7 +172,14 @@ int cmd_format_patch(int argc, const cha else if (!strcmp(argv[i], "-n") || !strcmp(argv[i], "--numbered")) numbered = 1; - else if (!strcmp(argv[i], "-k") || + else if (!strncmp(argv[i], "--start-number=", 15)) + start_number = strtol(argv[i] + 15, NULL, 10); + else if (!strcmp(argv[i], "--start-number")) { + i++; + if (i == argc) + die("Need a number for --start-number"); + start_number = strtol(argv[i], NULL, 10); + } else if (!strcmp(argv[i], "-k") || !strcmp(argv[i], "--keep-subject")) { keep_subject = 1; rev.total = -1; @@ -193,6 +201,11 @@ int cmd_format_patch(int argc, const cha } argc = j; + if (start_number >= 0) + numbered = 1; + else if (numbered) + start_number = 1; + if (numbered && keep_subject < 0) die ("-n and -k are mutually exclusive."); @@ -219,11 +232,11 @@ int cmd_format_patch(int argc, const cha } total = nr; if (numbered) - rev.total = total; + rev.total = total + start_number - 1; while (0 <= --nr) { int shown; commit = list[nr]; - rev.nr = total - nr; + rev.nr = rev.total - nr; if (!use_stdout) reopen_stdout(commit, rev.nr, keep_subject); shown = log_tree_commit(&rev, commit); -- 1.3.3.gd515 - : 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