threads / bug / 44058

Bug: git-add .* errors out

Subject: Bug: git-add .* errors out

## tl;dr

4 messages between Sep 11, 2016 and Sep 12, 2016.

replies: 3people: 3as markdown or json

Pranit Bauva· Sep 11, 2016, 19:10 UTC · lore
Hey everyone,

One of my friend was trying to add files using the command `git add .*` and got an error that "fatal: ..: '..' is outside repository" which did seem a little obvious to me. But then I tried to reproduce it in my machine with `git add ".*"` and it didn't error out. I am currently using git 2.9.3 on Ubuntu 15.04 while he is using git 1.9.1 on Ubuntu 16.04. What might have gone wrong?

Regards, Pranit Bauva

Andreas Schwab· Sep 11, 2016, 19:34 UTC · re: Pranit Bauva · lore

Re: Bug: git-add .* errors out

On Sep 12 2016, Pranit Bauva <pranit.bauva@gmail.com> wrote:
> One of my friend was trying to add files using the command `git add
> .*` and got an error that "fatal: ..: '..' is outside repository"
> which did seem a little obvious to me. But then I tried to reproduce
> it in my machine with `git add ".*"` and it didn't error out.
Probably you were running it in a subdirectory.
Andreas.
-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Thomas Gummerer· Sep 11, 2016, 19:39 UTC · re: Pranit Bauva · lore

Re: Bug: git-add .* errors out

Hi,
On 09/12, Pranit Bauva wrote:
Show 8 quoted lines
> Hey everyone,
> 
> One of my friend was trying to add files using the command `git add
> .*` and got an error that "fatal: ..: '..' is outside repository"
> which did seem a little obvious to me. But then I tried to reproduce
> it in my machine with `git add ".*"` and it didn't error out. I am
> currently using git 2.9.3 on Ubuntu 15.04 while he is using git 1.9.1
> on Ubuntu 16.04. What might have gone wrong?

The difference seems to be that you quoted the .*, which leaves the .* in place for gits internal pathspec machinery, which then only considers paths inside of the repository.

The non quoted version your friend used meanwhile is expanded by the shell itself, which seems to be expanding it to ., the current directory, and .., the parent directory. This behaviour also depends on the shell used, for me .* in bash includes the current as well as the parent directory, while .* in zsh doesn't include either of these.

> Regards,
> Pranit Bauva

Hope this helps, Thomas

Pranit Bauva· Sep 12, 2016, 05:59 UTC · re: Thomas Gummerer · lore

Re: Bug: git-add .* errors out

Hey Thomas,
On Mon, Sep 12, 2016 at 1:09 AM, Thomas Gummerer <t.gummerer@gmail.com> wrote:
Show 21 quoted lines
> Hi,
>
> On 09/12, Pranit Bauva wrote:
>> Hey everyone,
>>
>> One of my friend was trying to add files using the command `git add
>> .*` and got an error that "fatal: ..: '..' is outside repository"
>> which did seem a little obvious to me. But then I tried to reproduce
>> it in my machine with `git add ".*"` and it didn't error out. I am
>> currently using git 2.9.3 on Ubuntu 15.04 while he is using git 1.9.1
>> on Ubuntu 16.04. What might have gone wrong?
>
> The difference seems to be that you quoted the .*, which leaves the .*
> in place for gits internal pathspec machinery, which then only
> considers paths inside of the repository.
>
> The non quoted version your friend used meanwhile is expanded by the
> shell itself, which seems to be expanding it to ., the current
> directory, and .., the parent directory.  This behaviour also depends
> on the shell used, for me .* in bash includes the current as well as
> the parent directory, while .* in zsh doesn't include either of these.

This seems to be a reasonable reason. I had guessed the behaviour of the shell but didn't really know what was happening with the quoted version. And I guess it cannot really be fixed because it depends on the shell. I tried it out on bash though forgot to mention it. Thanks for the help!

Regards, Pranit Bauva

← back to recent threads