2010-05-07 4 views
14

Quando compresa la lineaE 'possibile che tutti i comandi "git diff" utilizzino il "Python diff", in tutti i progetti git?

*.py diff=python 

in un file .gitattributes locale git diff produce belle etichette per le diverse hunks diff di file Python (con il nome della funzione in cui i cambiamenti sono, ecc).

Is è possibile richiedere git per utilizzare questa modalità diff per tutti file Python attraverso tutti progetti git? Ho provato a impostare un ~/.gitattributes globale, ma non è usato dai repository git locali. C'è un metodo più conveniente di inizializzare ogni nuovo progetto git con un ln -s ~/.gitattributes?

risposta

3

Citando gitattributes(5) :

Gli attributi che dovrebbero interessare tutti i repository per un singolo utente devono essere inseriti in un file specificato dalla configurazione core.attributesfile opzione (vedi git-config (1)). Il suo valore predefinito è $ XDG_CONFIG_HOME/git/attributes. Se $ XDG_CONFIG_HOME non è impostato o vuoto, viene utilizzato $ HOME/.config/git/attributes. Gli attributi per tutti gli utenti di un sistema devono essere inseriti nel file $ (prefisso)/etc/gitattributes.

+1

Funziona (con git 1.8.4), grazie! Sembra che '* .py diff = python' ora sia effettivamente il default, quindi il caso particolare della mia domanda originale non sembra più rilevante. È bene sapere che esiste un file degli attributi a livello utente, in ogni caso! – EOL

0

No, git guarda solo per gli attributi a livello locale: .gitattributes e .git/info/attributes

3

A dire git da usare ~/.gitattributes è necessario mettere questo in ~/.gitconfig:

[core] 
    attributesfile = ~/.gitattributes 
+0

+1. Grazie. Questo è interessante, ma questo non preclude l'uso di un .gitattributes locale per le impostazioni locali? Mi chiedevo se sarebbe possibile avere alcuni attributi comuni a tutti i progetti, che potrebbero essere personalizzati localmente. – EOL