Re: Best way to check whether working tree matches a commit's tree
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 22, 2017, 19:34 UTC
- Message-ID
- <xmqqfucj2y7d.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <onhres$g9$1@blaine.gmane.org>
Sebastian Schuberth <sschuberth@gmail.com> writes:
Show 10 quoted lines
> 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.