Re: Best way to check whether working tree matches a commit's tree
On Tue, Aug 22, 2017 at 9:34 PM, Junio C Hamanowrote: >> 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. Right. I was just thinking if there's a lesser known command like "git diff --no-index", but instead of taking two paths, take just one path and a commit. > 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. In fact, I was considering to use "git diff HEAD $that_commit" as I don't really care whether the SHA1s are equal, but just about the file contents / tree. -- Sebastian Schuberth
Re: Best way to check whether working tree matches a commit's tree
Sebastian Schuberthwrites: > 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.
Best way to check whether working tree matches a commit's tree
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? -- Sebastian Schuberth