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

[PATCH] Make git-apply --stat less butt-ugly with long filenames

From
Linus Torvalds <torvalds@osdl.org>
Date
Jul 29, 2005, 03:37 UTC
Message-ID
<Pine.LNX.4.58.0507282031180.3307@g5.osdl.org>

When git-apply was printing out long filenames, it used to just truncate them to show the last "max_len" characters of the filename. Which can be really quite ugly (note the two filenames that have just been silently truncated from the beginning - it looks even worse when there are lots of them, like there were in the current v2.6.13-rc4 cris arch update):

 Documentation/video4linux/README.saa7134           |    9
 Documentation/video4linux/bttv/Cards               |   74
 umentation/video4linux/hauppauge-wintv-cx88-ir.txt |   54
 Documentation/video4linux/lifeview.txt             |   42
 mentation/video4linux/not-in-cx2388x-datasheet.txt |   41
 Documentation/w1/w1.generic                        |  107
With this patch it now looks like so:
 Documentation/video4linux/README.saa7134           |    9
 Documentation/video4linux/bttv/Cards               |   74
 .../video4linux/hauppauge-wintv-cx88-ir.txt        |   54
 Documentation/video4linux/lifeview.txt             |   42
 .../video4linux/not-in-cx2388x-datasheet.txt       |   41
 Documentation/w1/w1.generic                        |  107

ie we've made it clear with an ellipsis that we've cut off something from the beginning, and it also tries to do it cleanly at a subdirectory level.

Signed-off-by: Linus "good taste" Torvalds <torvalds@osdl.org>
---
diff --git a/apply.c b/apply.c
--- a/apply.c
+++ b/apply.c
@@ -737,6 +737,7 @@ static const char minuses[]= "----------
 
 static void show_stats(struct patch *patch)
 {
+	const char *prefix = "";
 	char *name = patch->new_name;
 	int len, max, add, del, total;
 
@@ -750,8 +751,15 @@ static void show_stats(struct patch *pat
 	max = max_len;
 	if (max > 50)
 		max = 50;
-	if (len > max)
+	if (len > max) {
+		char *slash;
+		prefix = "...";
+		max -= 3;
 		name += len - max;
+		slash = strchr(name, '/');
+		if (slash)
+			name = slash;
+	}
 	len = max;
 
 	/*
@@ -770,7 +778,7 @@ static void show_stats(struct patch *pat
 		add = (add * max + max_change / 2) / max_change;
 		del = total - add;
 	}
-	printf(" %-*s |%5d %.*s%.*s\n",
+	printf(" %s%-*s |%5d %.*s%.*s\n", prefix,
 		len, name, patch->lines_added + patch->lines_deleted,
 		add, pluses, del, minuses);
 }
Message 1 of 1 in “Make git-apply --stat less butt-ugly with long filenames”
  1. Make git-apply --stat less butt-ugly with long filenamesLinus Torvalds, Jul 29, 2005

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.