Peter Baumann wrote: > On Thu, Jan 27, 2011 at 01:48:45PM -0600, Jonathan Nieder wrote: >>> On Thu, Jan 27, 2011 at 12:07:49AM -0600, Jonathan Nieder wrote: >>>> + empty_tree=$(git mktree </dev/null) && [...] >> unless we hardcode the object name >> (which I prefer not to do). > > Wny not? It *is* already hardcoded in the GIT source code (see > grep -a1 EMPTY cache.h output). I think it is okay for the git implementation to rely on an implementation detail. ;-) Likewise, t0000 checks that the empty tree has id 4b825dc6. Meanwhile I would like to see people's scripts and other tests using the $(git mktree </dev/null) form, since it is more self-explanatory and avoids hardcoding an implementation detail. Of course this is not an absolute thing. Hope that helps, Jonathan Further reading: t0000-basic.h --help: Note that this test *deliberately* hard-codes many expected object IDs. When object ID computation changes, like in the previous case of swapping compression and hashing order, the person who is making the modification *should* take notice and update the test vectors here. "Tips for Writing Tests" in t/README: However, other tests that simply rely on basic parts of the core GIT working properly should not have that level of intimate knowledge of the core GIT internals. If all the test scripts hardcoded the object IDs like t0000-basic.sh does, that defeats the purpose of t0000-basic.sh, which is to isolate that level of validation in one place. Your test also ends up needing updating when such a change to the internal happens, so do _not_ do it and leave the low level of validation to t0000-basic.sh. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html