1

While in a git repository, I can do :

git log --oneline --stat 

and I'll have a nice output looking like:

ca0ab77 commit message a/file/changed | 19 ------------------- 1 file changed, 19 deletions(-) 

In my case, I am working outside a git repository and I only have the .diff (the output of git diff <commit-ish>) files and I would like to have the same stats (Files changed, additions, deletions).

Is there a tool to do it ? Or should I write a regex ?

1 Answer 1

3

The histogram with +/- signs and the "1 file changed, ..." is known as the diffstat. The diffstat tool (man page) can produce these if you feed it your diff:

$ diffstat -p1 my-patch.diff src/some_file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 

If you only want the last line, use -s:

$ diffstat -s my-patch.diff 1 file changed, 2 insertions(+), 2 deletions(-) 

Using -p1 is probably a good idea if you're feeding it git diffs which have a/b prefixes. If you don't use -p, diffstat strips common prefixes from the filenames. Sometimes this can give you unexpected results (especially if your patch adds or deletes files by comparing them with /dev/null).

Diffstat can also give you coloured histograms if you use the -C option.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.