Re: Two problems on alias of git
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- May 5, 2009, 17:01 UTC
- Message-ID
- <200905051901.38151.jnareb@gmail.com>
- In-Reply-To
- <op.utgs86ta6f2obg@i220-99-253-139.s27.a098.ap.plala.or.jp>
On Wed, 5 May 2009 (yes, different timezones), Kana Natsuno wrote:
> On Wed, 06 May 2009 00:42:49 +0900, Jakub Narebski <jnareb@gmail.com> wrote:
Show 18 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.By the way, "\n" is there only for nice looking output of git-config for this variable. For config file you need only to escape end of line.
Show 10 quoted lines
> > 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
Errrr... what I meant is that you have to _quote_ value if it contains comment character, compare
[string] unquoted = a # b quoted = "a # b"
not that you have to escape comment character '#'. But I forgot about the fact that ## in your example is inside quotes anyway.
-- Jakub Narebski Poland