From: Andy Parkins Date: Tue, 20 Mar 2007 15:24:03 GMT Subject: Re: [PATCH 3/4] update-hook: parse the tag header in preparation to use the tag type Message-ID: <200703201524.04282.andyparkins@gmail.com> In-Reply-To: <20070320143844.GA1750@spearce.org> On Tuesday 2007 March 20 14:38, Shawn O. Pearce wrote: > The problem of course is the update hook is running before a ref > is created to point at the tag. If you used post-receive hook > on the other hand... Oh, right, that has its own problems too! I've obviously not described the problem very well; as I don't understand how your comment relates to this patch. All I'm doing is pulling the individual fields out of $ git cat-file -p v1.5.0 object 437b1b20df4b356c9342dac8d38849f24ef44f27 type commit tag v1.5.0 tagger Junio C Hamano Wed Feb 14 00:00:00 2007 +0000 And putting them in their own variables. I'm not sure how for-each-ref or in fact, any ref-based tool would help me do this. At this point it's nothing to do with git, it's a standard shell script problem. git cat-file -p $newrev | while read field value do variable = "found" done echo $variable Doesn't work, because the right half of the pipe is run in its own process and so setting "variable" has no effect once the while loop is over. I found that "<<<" heredoc thing in the bash manual, which is almost like having a reverse pipe and allows the while loop to run in the main process. Andy -- Dr Andy Parkins, M Eng (hons), MIET andyparkins@gmail.com