Thread (3 messages) 3 messages, 2 authors, 2016-08-13

Re: [TopGit PATCH] pre-commit: check .top* files in the to-be-commited tree

flat view

From: Bert Wesarg <hidden>
Date: 2016-06-15 22:46:54

2009/6/4 Uwe Kleine-König [off-list ref]:
Hi Bert,
Hi Uwe,
On Tue, Jun 02, 2009 at 10:40:38PM +0200, Bert Wesarg wrote:
quoted
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.
quoted
+# 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help