Re: [RFC/PATCH] handle_alias: provide GIT_CWD to !alias
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- Apr 13, 2011, 13:24 UTC
- Message-ID
- <BANLkTikKyJb283ZTaX0q=BYkCtp_48Yocg@mail.gmail.com>
- In-Reply-To
- <4DA5A228.2040105@drmicha.warpmail.net>
On Wed, Apr 13, 2011 at 8:16 PM, Michael J Gruber <git@drmicha.warpmail.net> wrote:
Show 17 quoted lines
> Nguyen Thai Ngoc Duy venit, vidit, dixit 13.04.2011 15:12: >> On Wed, Apr 13, 2011 at 8:05 PM, Michael J Gruber >> <git@drmicha.warpmail.net> wrote: >>> - ret = run_command_v_opt(alias_argv, RUN_USING_SHELL); >>> + strbuf_addstr(&sb, "GIT_CWD="); >>> + if (subdir) >>> + strbuf_addstr(&sb, subdir); >>> + env[0] = sb.buf; >>> + env[1] = NULL; >>> + ret = run_command_v_opt_cd_env(alias_argv, RUN_USING_SHELL, NULL, env); >>> + strbuf_release(&sb); >>> if (ret >= 0) /* normal exit */ >>> exit(ret); >> >> subdir can be NULL. I'm not sure if it can be empty string though. May > > I'm pretty sure that my "if (subdir)" would catch that...
Yes. I skimmed too quick and realized after sending my email.
Show 7 quoted lines
>> need a check and set it to '.' so "cd $GIT_CWD" does not go back to >> $HOME. > > Well, with the current implementation you get empty or the subdir so > that you can easily "test -n $GIT_CWD". If you want to cd around you can > do "cd ./$GIT_CWD" unconditionally. I think this is more useful than > having a "." there.
In that case should the variable have a another name? CWD/PWD is usually absolute path. "cd ./$GIT_CWD" looks odd to me. Or you can getcwd() and set $OLDPWD.
-- Duy