2009/6/4 Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>: > Hi Bert, Hi Uwe, > > On Tue, Jun 02, 2009 at 10:40:38PM +0200, Bert Wesarg wrote: >> We currently check fo these files only in the working tree. But we should check >> what would be commited. We use write-tree to be able to utilize ls-tree and >> check the result. > <nitpick> I prefer not speaking about "us" in the commit log. Better > use passive voice. </nitpick> So what about: > > The pre-commit hook used to check that the working copy has the .top* > files. Instead of that assert that the tree that is about to be > commited has these files. Yes, thats right, Your message is nice, you can use it for the commit. > >> +# I suspect this can't fail, but who knows >> +tree=$(git write-tree) || >> + die "Can't write tree" > Actually you don't need to write the tree. You can use: > > git cat-file -t :0:.topdeps > -> blob > > git cat-file blob :0:.topdeps | grep . Hmm, not very nice: $ git init Initialized empty Git repository in /home/bertw/tmp/has-file/.git/ $ touch .topdeps $ git add .topdeps $ git commit -m.topdeps [master (root-commit) 8193982] .topdeps 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .topdeps $ git rm .topdeps rm '.topdeps' $ git cat-file -t :0:.topdeps fatal: Not a valid object name :0:.topdeps $ echo $? 128 $ git cat-file blob :0:.topdeps | grep . fatal: Not a valid object name :0:.topdeps $ echo $? 1 My proposal: $ git ls-tree --long "$(git write-tree)" .topdeps $ echo $? 0 Here I know, that all git commands don't die(), they all succeed. The .topdeps file, I'm looking for, is not in the tree, i.e. empty output. Bert > Best regards > Uwe -- 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