Re: Help creating git alias
- From
- Eugene Sajine <euguess@gmail.com>
- Date
- Oct 31, 2013, 15:36 UTC
- Message-ID
- <CAPZPVFYFSBRHThO08LmuN_0fc55gYX-A+Y3=yA_MESko1t6fXQ@mail.gmail.com>
- In-Reply-To
- <xmqqk3gu9jst.fsf@gitster.dls.corp.google.com>
On Wed, Oct 30, 2013 at 11:54 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 31 quoted lines
> Eugene Sajine <euguess@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*//\"' -" > >
Junio,
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 /home/users/euguess/repo
$ pwd /home/users/euguess/repo/a/b/c
Is there any way to help that situation?
Thanks, Eugene
Thanks, Eugene