Hi Matthieu, On Fri, 7 Oct 2016, Matthieu Moy wrote: > Duy Nguyen <pclouds@xxxxxxxxx> writes: > > > On Fri, Oct 7, 2016 at 6:20 PM, Johannes Schindelin > > <Johannes.Schindelin@xxxxxx> wrote: > >> Hi Junio, > >> > >> On Thu, 6 Oct 2016, Junio C Hamano wrote: > >> > >>> Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > >>> > >>> > Throwing something at the mailing list to see if anybody is > >>> > interested. > >>> > > >>> > Current '!' aliases move cwd to $GIT_WORK_TREE first, which could > >>> > make > >>> > handling path arguments hard because they are relative to the > >>> > original > >>> > cwd. We set GIT_PREFIX to work around it, but I still think it's > >>> > more > >>> > natural to keep cwd where it is. > >>> > > >>> > We have a way to do that now after 441981b (git: simplify > >>> > environment > >>> > save/restore logic - 2016-01-26). It's just a matter of choosing > >>> > the > >>> > right syntax. I'm going with '!!'. I'm not very happy with it. > >>> > But I > >>> > do like this type of alias. > >>> > >>> I do not know why you are not happy with the syntax, but I > >>> personally think it brilliant, both the idea and the preliminary > >>> clean-up that made this possible with a simple patch like this. > >> > >> I guess he is not happy with it because "!!" is quite unintuitive a > >> construct. I know that *I* would have been puzzled by it, asking > >> "What the > >> heck does this do?". > > > > Yep. And I wouldn't want to set a tradition for the next alias type > > '!!!'. There's no good choice to represent a new alias type with a > > leading symbol. This just occurred to me, however, what do you think > > about a new config group for it? With can have something like > > externalAlias.* (or some other name) that lives in parallel with > > alias.*. Then we don't need '!' (or '!!') at all. > > Another possibility: !(nocd), which leaves room > for !(keyword1,keyword2,...) if needed later. Also, it is consistent > with the :(word) syntax of pathspecs. But is this backwards-compatible? Don't we execute everything that comes after the exclamation mark as a command-line via shell, where the parentheses mean "open a subshell"? Ciao, Dscho