Re: [PATCH v2 2/2] rebase -i: use config file format to save author information
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 21, 2009, 06:41 UTC
- Message-ID
- <7vprcyt7fk.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20090621050846.3554.31660.chriscool@tuxfamily.org>
Christian Couder <chriscool@tuxfamily.org> writes:
> This is better than saving in a shell script, because it will make > it much easier to port "rebase -i" to C.
Hmph.
We used to parse a commit object in one go into variables, and I would have imagined that a rewrite in C will read a commit object to get the author information in variables in-core, without having to write any temporary file.
But with your patch, it starts to use a temporary file, and forces the C rewrite to do the same. It closes the door for a more efficient rewrite.
Why is this a good change?
> This also removes some sed regexps and some "eval"s.
That is a correct description of what the patch does.
But the use of sed and eval is an implementation detail. As long as they are used correctly, I do not think it is a grave offense to use them, and removal is not an improvement.
A possible argument (or excuse) you _could_ make to justify this change, I think, is that such a temporary file with known name will allow a hook script that is run during a rebase to learn the authorship information of the commit being rebased. This has been hidden inside variables without getting exported, and this patch defines a way for the scripts to get at it if they wanted to.
I didn't check if there is such a codepath that involves hooks, if there are plausible scenarios that they would want to learn that information, nor if the information is hard to get otherwise, though.