Today I updated a library version in a project, which changed the path from
packages/FSharpFormatting.CommandTool-2.9.1. We’d also taken our own copies of some templates in the package, and I wanted to check if there were any differences between
-2.9.1\templates that I should port across.
Rather than my usual fumbling about (check out both, copy, diff) I thought I’d try to learn the necessary Git incantation to compare the paths. And then blog it, so that when I forget I’ll have a quick reference handy for next time. :)
I ended up using
git diff with the
COMMIT:PATH format, using
HEAD~1 as the commit references (shown split over multiple lines):
To get a summary of the files changes instead (in this case, to confirm nothing changed), use the
I was pretty impressed that Git’s Bash prompt on Windows gave me autocompletion on the
HEAD~1:/...2.8.0/ path despite the path no longer being in the working directory.