Re: diff alias which used to work in version 2.27, failing from version 2.28 onwards

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 24, 2023 at 10:19:18AM +0000, Reverdell  Auriane wrote:

> 14:38:45.275964 git.c:439               trace: built-in: git diff a2028e7b^..a2028e7b a2028e7b 
> [...]
> Is that expected behavior? if yes, how is the right/clean way to
> discard the command line argument of the alias?

Yes, that's expected. Your alias was always a little broken by adding
the extra argument, but "git diff" got a little more careful about its
input in 8bfcb3a690 (git diff: improve range handling, 2020-06-12),
which as part of v2.28.

The usual way for manipulating arguments in a shell snippet is to make a
function, like:

  [alias]
  dici = "!f() { git diff ${1:-HEAD}^..${1:-HEAD}; }; f"

Then Git ends up running "f a2028e7b", and the shell does the rest. It's
obviously a bit more verbose to write, but you're free to do even more
manipulation (e.g., using the first non-option argument as the rev and
taking the rest as options).

All that said, there is a shorthand that may make your alias obsolete.
>From "git help revisions":

         <rev>^-<n>, e.g. HEAD^-, HEAD^-2
             Equivalent to <rev>^<n>..<rev>, with <n> = 1 if not given.

So just:

  git diff a2028e7b^-

does what you want.

-Peff



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux