threads / discuss / 23552

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

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

## tl;dr

4 messages between Apr 21, 2010 and Apr 26, 2010.

replies: 3people: 3as markdown or json

Štěpán Němec· Apr 21, 2010, 17:05 UTC · lore
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· Apr 26, 2010, 13:44 UTC · re: Štěpán Němec · lore

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

Štěpán Němec <stepnem@gmail.com> writes:
Show 20 quoted lines
> 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· Apr 26, 2010, 13:48 UTC · re: Štěpán Němec · lore

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

Štěpán Němec <stepnem@gmail.com> writes:
Show 5 quoted lines
>> 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· Apr 26, 2010, 14:48 UTC · re: Matthieu Moy · lore

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

Matthieu Moy venit, vidit, dixit 26.04.2010 15:48:
Show 13 quoted lines
> Š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

← back to recent threads