Re: BUG: Git path --config doesn't work with ~ symbol

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

 



On Wed, May 05, 2021 at 02:21:38PM -0400, Eric Sunshine wrote:

> On Wed, May 5, 2021 at 2:14 PM Jeff King <peff@xxxxxxxx> wrote:
> > On Wed, May 05, 2021 at 09:06:12PM +0300, Theodor Negrescu wrote:
> > > I ran the command "git config --file ~/git-settings/.gitconfig -l"
> > > (git-settings is a repo where I keep my config, the global one is just
> > > an include)
> >
> > I don't think this is a bug in git-config. It is generally the shell
> > that is responsible for expanding "~" and passing along the result to
> > commands. E.g.:
> >
> >   $ strace -e execve git config --file ~/foo --list
> >   execve("/home/peff/local/git/current/bin/git", ["git", "config", "--file", "/home/peff/foo", "--list"], 0x7ffc10a88130 /* 55 vars */) = 0
> >
> > I'd guess this might be related to Windows somehow. Are you entering the
> > command in a bash shell, or via some other mechanism?
> 
> Is OPT_FILENAME supposed to handle tilde-expansion? I ask because
> git-config is using OPT_STRING for this option, whereas other commands
> use OPT_FILENAME for their `--file` options.

No, I don't think so. The point of OPT_FILENAME() is that it handles the
directory-change from setting up the git directory before we even the
the cmd_*() function.

But that isn't necessary here, because cmd_config() applies the prefix
manually. So this works as expected:

  $ git init
  $ mkdir subdir
  $ git config --file=foo my.dir root
  $ git config --file=subdir/foo my.dir sub
  $ git config --file=foo --list
  my.dir=root
  $ cd subdir
  $ git config --file=foo --list
  my.dir=sub

Possibly the code could be simplified a little by using OPT_FILENAME(),
though.

-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