Re: [PATCH v2 2/2] rebase -i: use config file format to save author information
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Jun 21, 2009, 08:01 UTC
- Message-ID
- <200906211001.42254.jnareb@gmail.com>
- In-Reply-To
- <7vhbyat6qc.fsf@alter.siamese.dyndns.org>
On Sun, 21 June 2009, Junio C Hamano wrote:
Show 19 quoted lines
> Daniel Barkalow <barkalow@iabervon.org> writes: > >>> Why is this a good change? >> >> It was always using a temporary file; it just used to use a temporary file >> that was a shell script fragment and needed to be read with "eval". It >> can't be done entirely in core because it may be determined before a >> conflict and only used when run with --continue after the user resolves >> the conflict. > > Ahh, Ok. > > Using a _known_ and defined format, instead of ad-hoc scriptlet, is an > improvement. > > I still wonder if we can avoid using three separate "git show" and "git > config" invocations, though. But a half of that inefficiency will go away > when this is migrated to C, as a single git_config() will grab all three, > although the writing side is still very inefficient X-<.
I think we can on the reading side: just use "git config --list", or perhaps "git config --get-regexp <sth>" (where <sth> can be ".*") which conveniently has SPC as separator, and feed it to appropriate 3 x 'read'.
On the writing side we can simply write in the config file format, we don't need to use git-config for that. Although I wonder if there won't be trouble with shell escaping and quoting rules (eval / sed, which I guess does shell quoting / shell unquoting).
On getting the information side we can use git-show with custom format or git-cat-file fed to while-read-case construct.
This way from 3 x 3 = 9 git commands git-rebase--interactive.sh would use only 2.
-- Jakub Narebski Poland