2013-07-10 2 views
1

У меня есть этот файл в системной конфигурации (но он также может быть включен с git config include.path="/path/to/defaultconfig". Я хотел бы сбросить ранее установленные значения.override git config --system в файле .gitconfig пользователя (git config --global)

в частности, файл конфиг по умолчанию содержит diff.external = git-diff-wrapper, и я хотел бы, чтобы отключить его для некоторых пользователей

ответ

2

Если это система шириной конфигурации, каждый пользователь может переопределение значение конфигурации в его/ее глобальной и местные настройки.

Но нет простой способ «деактивировать» настройку в более низком конфигурационном файле.
Даже установить его на "", как правило, имеет непредвиденные последствия. Это very topic was discussed in April 2010.

Например, отключив send-email вариант:

Правда, подумав немного об этом не используя никакого значения, чтобы сбросить это ужасный, ужасный хак.
git-send-email следует исправить не только, чтобы проверить, есть ли значение из конфигурации или командной строки, но также и то, что он является нормальным (т.е. непустым или просто истинным, если мы скажем , что smtpuser = "0" не то, что нам нужно беспокоиться о поддержке).

Это было бы верно для любого параметра: функция diff.c#run_diff_cmd() будет пытаться запустить внешний диф, если it has detected и diff.external значения (даже "").

if (!strcmp(var, "diff.external")) 
    return git_config_string(&external_diff_cmd_cfg, var, value); 

приводит к:

if (pgm) { 
    run_external_diff(pgm, name, other, one, two, xfrm_msg, 
    complete_rewrite); 
    return; 
} 

Так что нет простого способа заблокировать систему шириной дифференциала внешними, за исключением, убедившись, что эти пользователи ссылаются на другой пути установки системы мерзавца (это означает различные настройки системы).

Смежные вопросы