Add file addition/deletion indicator in diffstat
PATCH 1/1 Add file addition/deletion indicator in diffstat
For new files, " (new)" will be appended to filenames. For deleted files, " (deleted)" will be appended to filenames.
--- diff.c | 29 +++++++++++++++++++++++++++++ 1 files changed, 29 insertions(+), 0 deletions(-)
diff.c +29 -0
@@ -599,6 +599,8 @@ struct diffstat_t { unsigned is_unmerged:1; unsigned is_binary:1; unsigned is_renamed:1; + unsigned is_added:1; + unsigned is_deleted:1;unsigned int added, deleted; } **files; };
@@ -707,6 +709,10 @@ static void show_stats(struct diffstat_t } len =strlen (file->name); +if (file->is_added) + len +=6 ;/* " (new)" */ +if (file->is_deleted) + len +=10 ;/* " (deleted)" */ if (max_len < len) max_len = len;
@@ -735,12 +741,25 @@ static void show_stats(struct diffstat_tint added = data->files[i]->added;int deleted = data->files[i]->deleted;int name_len; +char *new_name =NULL ;/* * "scale" the filename */ len = name_width; name_len =strlen (name); +if (data->files[i]->is_added) { + new_name = name =xmalloc (name_len+7 );/* " (new)" */ +memcpy (name,data->files[i]->name,name_len); +memcpy (name+name_len," (new)" ,7 ); + name_len +=6 ; + } +if (data->files[i]->is_deleted) { + new_name = name =xmalloc (name_len+11 );/* " (deleted)" */ +memcpy (name,data->files[i]->name,name_len); +memcpy (name+name_len," (deleted)" ,11 ); + name_len +=10 ;/* " (deleted)" */ + }if (name_width < name_len) {char *slash; prefix ="..." ;
@@ -787,6 +806,8 @@ static void show_stats(struct diffstat_tshow_graph ('-' , del, del_c, reset);putchar ('\n' ); free_diffstat_file: +if (new_name) +free (new_name);free (data->files[i]->name);free (data->files[i]); }
@@ -1067,6 +1088,14 @@ static void builtin_diffstat(const char data->is_unmerged =1 ;return ; } +if (DIFF_FILE_VALID (one)) { +if (!DIFF_FILE_VALID (two)) + data->is_deleted =1 ; + } +else { +if (DIFF_FILE_VALID (two)) + data->is_added =1 ; + }if (complete_rewrite) {diff_populate_filespec (one,0 );diff_populate_filespec (two,0 );
Hi Junio,
I have used this patch for a while and found it actually useful, especially while inspecting "git-log --stat". And if you prefer "git diff --stat" over "git status", it may tell you which file you added or deleted. So my only guess is that you missed it somehow. If it is refused, may I know the reason? I can improve it on request :-)
Quoted 2 lines · On 11/11/06, [email protected] <[email protected]> wrote:
For new files, " (new)" will be appended to filenames. For deleted files, " (deleted)" will be appended to filenames.
Quoted 5 lines · Nguyen Thai Ngoc Duy
I have used this patch for a while and found it actually useful, especially while inspecting "git-log --stat". And if you prefer "git diff --stat" over "git status", it may tell you which file you added or deleted. So my only guess is that you missed it somehow. If it is refused, may I know the reason? I can improve it on request :-)
Doesn't seem to add much value over existing --summary.
Quoted 9 lines · Junio C Hamano
Quoted 5 lines · Nguyen Thai Ngoc Duy
I have used this patch for a while and found it actually useful, especially while inspecting "git-log --stat". And if you prefer "git diff --stat" over "git status", it may tell you which file you added or deleted. So my only guess is that you missed it somehow. If it is refused, may I know the reason? I can improve it on request :-)
Doesn't seem to add much value over existing --summary.
Oh.. I didn't know that option. Sorry for the noise.