2010-05-07 18 views
14

Przy tym liniaCzy wszystkie polecenia "git diff" mogą korzystać z "Python diff" we wszystkich projektach git?

*.py diff=python 

w lokalnym pliku .gitattributes, git diff produkuje ładne etykiety dla różnych porcji diff plików Pythona (z nazwą funkcji, gdzie zmiany są, etc.).

Czy jest możliwe, aby zapytać git użyć tego trybu diff dla wszystkie plików Python całej wszystkie projektów git? Próbowałem ustawić globalne ~/.gitattributes, ale nie jest ono używane przez lokalne repozytoria git. Czy istnieje wygodniejsza metoda niż inicjowanie każdego nowego projektu git z ln -s ~/.gitattributes?

Odpowiedz

3

Cytując gitattributes(5) :

Atrybuty, które powinny wpłynąć na wszystkie repozytoria dla pojedynczego użytkownika, należy umieścić w pliku określonym przez plik core.attributes. opcja (patrz git-config (1)). Jego domyślną wartością jest $ XDG_CONFIG_HOME/git/attributes. Jeśli $ XDG_CONFIG_HOME nie jest ustawiony lub pusty, zamiast niego używane jest $ HOME/.config/git/attributes. Atrybuty wszystkich użytkowników w systemie powinny znajdować się w pliku $ (prefix)/etc/gitattributes.

+1

To działa (z git 1.8.4), dzięki! Wygląda na to, że '* .py diff = python' jest teraz domyślnie, więc szczególny przypadek mojego pierwotnego pytania nie wydaje się już odpowiedni. W każdym razie dobrze jest wiedzieć, że istnieje plik atrybutów na poziomie użytkownika! – EOL

0

Nie, git wygląda tylko dla atrybutów lokalnie: .gitattributes i .git/info/attributes

3

Aby powiedzieć git użyć ~/.gitattributes trzeba umieścić to w ~/.gitconfig:

[core] 
    attributesfile = ~/.gitattributes 
+0

+1. Dzięki. Jest to interesujące, ale czy nie wyklucza to użycia lokalnych .gitatrybutów dla ustawień lokalnych? Zastanawiałem się, czy możliwe byłoby posiadanie pewnych atrybutów wspólnych dla wszystkich projektów, które można dostosować na miejscu. – EOL