Sebastian Schuberth <[email protected]> writes:
> Hi,
>
> I'd like to check whether my working tree exactly matches the tree of a given
> commit. That is, there should not be any untracked, staged or modified files
> (including ignored files).
>
> Currently, I'm doing this in two steps:
>
> - check for success and empty output of "git status --ignored --porcelain"
> - check that the output of "git rev-parse HEAD" matches the given commit
>
> While this works, it feels sub-optimal. Is there a better / smarter way?
I do not think so; you want three things to match and you have a way
to compare two things at a time.
By the way, I think your second check should compare
rev-parse HEAD^{tree} $that_commit^{tree}
as you are checking if the tree exactly matches.