# No way to have global diff settings? (global .gitattributes feature request)

4 messages from 2010-04-21 to 2010-04-26. Participants: Štěpán Němec, Matthieu Moy, Michael J Gruber.
Thread: https://gitlist.dev/t/23552

## Štěpán Němec, 2010-04-21 17:05

Subject: No way to have global diff settings? (global .gitattributes feature request)
Message-ID: <87zl0wd9ce.fsf@gmail.com>
URL: https://gitlist.dev/e/87zl0wd9ce.fsf%40gmail.com

```

Hello,

it seems there is no global .gitattribute equivalent to .gitignore or
.gitconfig. Wouldn't it make much sense to have one? Failing that, there
really should be a way to specify some global diff options at least.

My use case:

I wanted to specify something like -F "^(" to git diff for lisp files.
But well, git diff has no -F option! So shruggar from #git pointed me to
gitattributes. OK, that's great and works, but now I have to put
.gitattributes or info/attributes to all repos with lisp files in them?
That rather sucks, if you ask me.

So I would like to ask if there is a way, and if not, if it could be
considered a useful feature addition.

Thanks,

  Štěpán

```

## Štěpán Němec, 2010-04-26 13:44

Subject: Re: No way to have global diff settings? (global .gitattributes feature request)
Message-ID: <87och6ib0r.fsf@gmail.com>
URL: https://gitlist.dev/e/87och6ib0r.fsf%40gmail.com
In-Reply-To: <87zl0wd9ce.fsf@gmail.com>

```
Štěpán Němec <stepnem@gmail.com> writes:

> Hello,
>
> it seems there is no global .gitattribute equivalent to .gitignore or
> .gitconfig. Wouldn't it make much sense to have one? Failing that, there
> really should be a way to specify some global diff options at least.
>
> My use case:
>
> I wanted to specify something like -F "^(" to git diff for lisp files.
> But well, git diff has no -F option! So shruggar from #git pointed me to
> gitattributes. OK, that's great and works, but now I have to put
> .gitattributes or info/attributes to all repos with lisp files in them?
> That rather sucks, if you ask me.
>
> So I would like to ask if there is a way, and if not, if it could be
> considered a useful feature addition.
>
> Thanks,
>
>   Štěpán

PING

```

## Matthieu Moy, 2010-04-26 13:48

Subject: Re: No way to have global diff settings? (global .gitattributes feature request)
Message-ID: <vpqoch6fhoz.fsf@bauges.imag.fr>
URL: https://gitlist.dev/e/vpqoch6fhoz.fsf%40bauges.imag.fr
In-Reply-To: <87och6ib0r.fsf@gmail.com>

```
Štěpán Němec <stepnem@gmail.com> writes:

>> Hello,
>>
>> it seems there is no global .gitattribute equivalent to .gitignore or
>> .gitconfig. Wouldn't it make much sense to have one? Failing that, there
>> really should be a way to specify some global diff options at least.

I'd like this feature too. My use-case is to have antiword and odt2txt
as textconv filters for .doc and .odt files, which I always want to
do. But probably the feature won't get implemented until one of us
writes a patch ;-) (I may have time later, but not before a few
days/weeks).

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

```

## Michael J Gruber, 2010-04-26 14:48

Subject: Re: No way to have global diff settings? (global .gitattributes feature request)
Message-ID: <4BD5A7D5.3060203@drmicha.warpmail.net>
URL: https://gitlist.dev/e/4BD5A7D5.3060203%40drmicha.warpmail.net
In-Reply-To: <vpqoch6fhoz.fsf@bauges.imag.fr>

```
Matthieu Moy venit, vidit, dixit 26.04.2010 15:48:
> Štěpán Němec <stepnem@gmail.com> writes:
> 
>>> Hello,
>>>
>>> it seems there is no global .gitattribute equivalent to .gitignore or
>>> .gitconfig. Wouldn't it make much sense to have one? Failing that, there
>>> really should be a way to specify some global diff options at least.
> 
> I'd like this feature too. My use-case is to have antiword and odt2txt
> as textconv filters for .doc and .odt files, which I always want to
> do. But probably the feature won't get implemented until one of us
> writes a patch ;-) (I may have time later, but not before a few
> days/weeks).

I leave it up to you to do the (re)search, but there's some preexisting
patches and discussion around this topic. The upshot is that currently:

SYSTEM                  | GLOBAL             | VERSIONED             | LOCAL

$(prefix)/etc/gitconfig | $(HOME)/.gitconfig | N/A                   |
$(GIT_DIR)/config

N/A                     | N/A                | .gitattributes (rec.) |
$GIT_DIR/info/attributes

N/A                     | N/A                | .gitignore (rec.)     |
$GIT_DIR/info/exclude

There's also GIT_CONFIG overriding the defaults, and core.exludesfiles
(yes, with s!); and of course command line parameters.

There's been requests for versioned config, for multiple sources of
system config (think config.d/*), for global and system versions of
attributes and exclude/ignore, for saner naming of exclude(s) vs.
ignore, and, finally, for stopping all this madness, or rather: putting
all of it in a subdir, aptly named gitconfig... no-no, no-go... or
following the XDG conventions, or...

So, you see: You may suggest something simple like core.attributesfile.
I have a prediction how that goes.

But now, right after 1.7.1, it might be a good time to really settle
this in a future-proof yet backwards-compatible way.

Michael

```
