Re: Two problems on alias of git
- From
Kana Natsuno <kana@whileimautomaton.net>
- Date
- May 5, 2009, 16:25 UTC
- Message-ID
- <op.utgs86ta6f2obg@i220-99-253-139.s27.a098.ap.plala.or.jp>
- In-Reply-To
- <200905051742.51163.jnareb@gmail.com>
On Wed, 06 May 2009 00:42:49 +0900, Jakub Narebski <jnareb@gmail.com> wrote:
Show 16 quoted lines
> By the way, you can use continuation-of-line character (end line
> with '\') and/or can embed newlines using C escape sequence, i.e. "\n".
>
> So your code can look like this (although I am not sure it is worth it):
>
> [alias]
> lr = "!$SHELL -c ' \n\
> n=10; \n\
> 1=\"${1:-$n}\"; \n\
> if ! [ \"${1##[0-9]*}\" = \"\" ]; then \n\
> t=\"$1\"; \n\
> 1=\"${2:-$n}\"; \n\
> 2=\"$t\"; \n\
> fi; \n\
> git --no-pager l1 --reverse -\"$1\" \"${2:-HEAD}\" \n\
> ' __dummy__"Thank you again, I didn't know that. It is better than what I wrote.
> BTW. you need to quote value because it contains comment character '#' > in 4th line of script.
Really? As far as I read the code of git, especially parse_value() in config.c, it is not necessary to escape '#'s because they are inside of the outermost doublequotes and they should not be escaped, because \# is an unknown escape sequence and git rejects them. If #s are escaped, it causes an error as follows:
$ git config --get alias.lr fatal: bad config file line 29 in /Users/kana/.gitconfig
-- To Vim, or not to Vim. http://whileimautomaton.net/