From: NGUYEN Huynh Khoi Nguyen <nguyenhu@ensimag.imag.fr>
To: git@vger.kernel.org
Cc: Matthieu.Moy@grenoble-inp.fr,
NGUYEN Huynh Khoi Nguyen <nguyenhu@ensibm.imag.fr>
Subject: [PATCH 1/2] Add possibility to store configuration in ~/.config/git/config file
Date: Fri, 25 May 2012 21:47:18 +0200 [thread overview]
Message-ID: <1337975239-17169-1-git-send-email-nguyenhu@ensibm.imag.fr> (raw)
git will store its configuration in ~/.config/git/config file if this file
exists and ~/.gitconfig file doesn't, otherwise git store its configuration
in ~/.gitconfig as usual
---
builtin/config.c | 31 ++++++++++++++++++++++++++++---
config.c | 15 ++++++++++++++-
2 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/builtin/config.c b/builtin/config.c
index 33c8820..dc890d5 100644
--- a/builtin/config.c
+++ b/builtin/config.c
@@ -171,8 +171,20 @@ static int get_value(const char *key_, const char *regex_)
if (!local) {
const char *home = getenv("HOME");
local = repo_config = git_pathdup("config");
- if (home)
- global = xstrdup(mkpath("%s/.gitconfig", home));
+ if (home) {
+ char gitconfig_path[PATH_MAX], config_path[PATH_MAX];
+ FILE *gitconfig_file, *config_file;
+
+ sprintf(gitconfig_path, "%s/.gitconfig", home);
+ sprintf(config_path, "%s/.config/git/config", home);
+ gitconfig_file = fopen(gitconfig_path, "r");
+ config_file = fopen(config_path, "r");
+
+ if (gitconfig_file==NULL && config_file!=NULL)
+ global = xstrdup(mkpath("%s/.config/git/config", home));
+ else
+ global = xstrdup(mkpath("%s/.gitconfig", home));
+ }
if (git_config_system())
system_wide = git_etc_gitconfig();
}
@@ -381,7 +393,20 @@ int cmd_config(int argc, const char **argv, const char *prefix)
if (use_global_config) {
char *home = getenv("HOME");
if (home) {
- char *user_config = xstrdup(mkpath("%s/.gitconfig", home));
+ char gitconfig_path[PATH_MAX], config_path[PATH_MAX];
+ FILE *gitconfig_file, *config_file;
+ char *user_config;
+
+ sprintf(gitconfig_path, "%s/.gitconfig", home);
+ sprintf(config_path, "%s/.config/git/config", home);
+ gitconfig_file = fopen(gitconfig_path, "r");
+ config_file = fopen(config_path, "r");
+
+ if (gitconfig_file==NULL && config_file!=NULL)
+ user_config = xstrdup(mkpath("%s/.config/git/config", home));
+ else
+ user_config = xstrdup(mkpath("%s/.gitconfig", home));
+
given_config_file = user_config;
} else {
die("$HOME not set");
diff --git a/config.c b/config.c
index eeee986..998dbbc 100644
--- a/config.c
+++ b/config.c
@@ -962,7 +962,20 @@ int git_config_early(config_fn_t fn, void *data, const char *repo_config)
home = getenv("HOME");
if (home) {
char buf[PATH_MAX];
- char *user_config = mksnpath(buf, sizeof(buf), "%s/.gitconfig", home);
+ char gitconfig_path[PATH_MAX], config_path[PATH_MAX];
+ FILE *gitconfig_file, *config_file;
+ char *user_config;
+
+ sprintf(gitconfig_path, "%s/.gitconfig", home);
+ sprintf(config_path, "%s/.config/git/config", home);
+ gitconfig_file = fopen(gitconfig_path, "r");
+ config_file = fopen(config_path, "r");
+
+ if (gitconfig_file==NULL && config_file!=NULL)
+ user_config = mksnpath(buf, sizeof(buf), "%s/.config/git/config", home);
+ else
+ user_config = mksnpath(buf, sizeof(buf), "%s/.gitconfig", home);
+
if (!access(user_config, R_OK)) {
ret += git_config_from_file(fn, user_config, data);
found += 1;
--
1.7.0.4
next reply other threads:[~2012-05-25 20:09 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-25 19:47 NGUYEN Huynh Khoi Nguyen [this message]
2012-05-25 19:47 ` [PATCH 2/2] Test File Name: t1306-second-config-file.sh NGUYEN Huynh Khoi Nguyen
2012-05-25 20:30 ` [PATCH 1/2] Add possibility to store configuration in ~/.config/git/config file Jeff King
2012-05-25 21:25 ` Junio C Hamano
2012-05-25 21:44 ` Jeff King
2012-05-26 10:15 ` Nguyen Thai Ngoc Duy
2012-05-26 21:54 ` Jeff King
2012-05-28 21:05 ` David Aguilar
2012-05-26 9:05 ` Matthieu Moy
2012-05-25 21:26 ` jaseem abid
2012-05-26 8:53 ` Matthieu Moy
2012-05-26 21:49 ` Jeff King
-- strict thread matches above, loose matches on Subject: below --
2012-05-28 16:16 nguyenhu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1337975239-17169-1-git-send-email-nguyenhu@ensibm.imag.fr \
--to=nguyenhu@ensimag.imag.fr \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=git@vger.kernel.org \
--cc=nguyenhu@ensibm.imag.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).