On Thu, Feb 25, 2021 at 06:50:12AM +0100, Patrick Steinhardt wrote: > The reference-transaction hook doesn't clearly document its scope and > what values it receives as input. Document it to make it less surprising > and clearly delimit its (current) scope. > > Signed-off-by: Patrick Steinhardt <ps@xxxxxx> > --- > > I've been postponing doing this simple doc update for far too long, but > here it finally is. It simply clarifies its current workings and > limitations without changing anything. This is not supposed to be a "We > don't want it to ever cover symrefs", but rather to avoid confusion. I think that's a good step forward. We might want to say "does not cover symbolic references (but that may change in the future)" to make it clear that nothing is definite. OTOH, I suspect adding them would require a change to the hook's stdin format, so it is not like a hook could be written in a way to magically handle them if things change in the future. > @@ -492,6 +493,13 @@ receives on standard input a line of the format: > > <old-value> SP <new-value> SP <ref-name> LF > > +where `<old-value>` is the old object name passed into the reference > +transaction, `<new-value>` is the new object name to be stored in the > +ref and `<ref-name>` is the full name of the ref. When force updating > +the reference regardless of its current value or when the reference is > +to be created anew, `<old-value>` is 40 `0`. To distinguish these cases, > +you can inspect the current value of `<ref-name>` via `git rev-parse`. We should probably avoid saying "40" here. Maybe "all zeroes" or something. -Peff