Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How to show "<short commit hash> <changed files separated by ,>" for a given revison range using git?

I need an output like this

adfaadf foo.txt
dfafdaf bar.txt,zar.txt
...

I have this command

git --no-pager log --name-only --oneline --format="%h" master..

But it puts a line like this

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

foo.txt
adfaadf

bar.txt,zar.txt
dfafdaf

If the file comes before or after the hash is not a big difference to my I just want them in the same line

>Solution :

You have to roll this on your own, but the following should work:

git rev-list master.. | while read -r commit; do
  printf '%s %s\n' \
    "$commit" \
    "$(git --no-pager show --name-only --format= $commit | paste -sd,)";
done

Sample output of git.git:

0703251124a438805b6a7994af1c84280976414f 
4acffdb9414cbf57841cdd96a134bbf9beda2254 
e42bc4566fa2f00e95e2524742f4aba9e8dba3ba builtin/fetch.c
378b51993aa022c432b23b7f1bafd921b7c43835 Documentation/git-gc.txt
9bef0b1e6ec371e786c2fba3edcc06ad040a536c builtin/branch.c
b2463fc30a43a43b5de788fa1611603f84097873 builtin/fetch.c
763f9739486ebf52dadb6c56742daf07e738829f 
8834ffe0ab92dabda3fabd6fa2160ac02869765c setup.c
518afcbc48f4314bcfb72371410281e4d6e494fd Documentation/config/safe.txt,git-compat-util.h
a3ba4fa715c67329736c9483f4b3fdab99cee50f setup.c

Or, a version that better matches the output given in your question:

git rev-list master.. | while read -r commit; do
  git --no-pager show --name-only --format='%h' $commit | paste -sd ' \0,';
done

generates the following output for git.git:

0703251124 
4acffdb941 
e42bc4566f builtin/fetch.c
378b51993a Documentation/git-gc.txt
9bef0b1e6e builtin/branch.c
b2463fc30a builtin/fetch.c
763f973948 
8834ffe0ab setup.c
518afcbc48 Documentation/config/safe.txt,git-compat-util.h
a3ba4fa715 setup.c
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading