[PATCH] Make git-apply --stat less butt-ugly with long filenames
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> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
df076bdbcc
commit
629170973d
12
apply.c
12
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 *patch)
|
||||
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 *patch)
|
||||
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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user