On Wed, Oct 30, 2013 at 11:54 PM, Junio C Hamano <gits...@pobox.com> wrote:
> Eugene Sajine <eugu...@gmail.com> writes:
>> That was my initial intention, because I would like to be able to pass
>> parameters like to git log or git blame correctly without the explicit
>> use of $1. Could you please advise about how to make it work with the
>> !sh -c ?
>> Because the same exact (sed 's/@\\S*//') syntax didn't work with "sh -c".
> You can make it work if you think step-by-step.  First, this is what
> you want to run:
>         sh -c 'git log --format="..." "$@" | sed "s/@\S*//"' -
> so that "git euguess master..next" would turn into
>         sh -c 'git log --format="..." "$@" | sed "s/@\S*//"' - master..next
> Now, you want to wrap it into an alias, i.e.
>         [alias]
>                 euguess = "!sh -c ..."
> That ... part is read by our configuration reader, so you need to
> quote the double quotes and backslashes with backslash, which would
> give you something like:
>         [alias]
>                 euguess = "!sh -c 'git log --format=\"%h %ae %s\" 
> --date=short \"$@\" | sed \"s/@\\S*//\"' -"


Thanks for taking the time - I appreciate that a lot.
It does work properly now except there is some difference between the
required pathnames:

when i'm in a subfolder in git repo i can say

git log filename

But it seems that if the alias is used i need to specify full path
from the root of the repo no matter where i am.

git log a/b/c/filename

the difference is obviously in the working directory

when i add an alias:

pd = "!sh -c 'pwd'"

i get this:

$ git pd

$ pwd

Is there any way to help that situation?


To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to