git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git-format-patch possible regressions

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
May 25, 2006, 21:55 UTC
Message-ID
<Pine.LNX.4.63.0605252338530.31700@wbgn013.biozentrum.uni-wuerzburg.de>
In-Reply-To
<7vhd3dubd9.fsf@assigned-by-dhcp.cox.net>
Hi,
On Thu, 25 May 2006, Junio C Hamano wrote:
Show 7 quoted lines
> "Marco Costalba" <mcostalba@gmail.com> 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@gmx.de>
---
 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
Previous: Marco CostalbaNext: Johannes Schindelin
Message 6 of 14 in “git-format-patch possible regressions”
  1. Marco CostalbaMay 25, 2006
  2. Linus TorvaldsMay 25, 2006
  3. Marco CostalbaMay 25, 2006
  4. Junio C HamanoMay 25, 2006
  5. Marco CostalbaMay 25, 2006
  6. Johannes SchindelinMay 25, 2006
  7. Johannes SchindelinMay 25, 2006
  8. Junio C HamanoMay 25, 2006
  9. Johannes SchindelinMay 25, 2006
  10. Marco CostalbaMay 26, 2006
  11. Junio C HamanoMay 26, 2006
  12. Jakub NarebskiMay 26, 2006
  13. Marco CostalbaMay 27, 2006
  14. Johannes SchindelinMay 28, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.