summaryrefslogtreecommitdiff
path: root/dir.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-06-05 12:00:12 -0700
committerJunio C Hamano <gitster@pobox.com>2015-06-05 12:00:13 -0700
commite9f767ecee21af47fa5515ee6f8106d70cabe983 (patch)
treee0bd4999a874729c219b405dad31e4f82454a062 /dir.c
parent2d8bb4685c4d1e7187f93436fc26ad468a0cf941 (diff)
parent099d2d86a8e17218aca31bf7c4070a820baf4baa (diff)
downloadgit-e9f767ecee21af47fa5515ee6f8106d70cabe983.tar.gz
Merge branch 'jc/gitignore-precedence' into maint
core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed to be overridden by repository-specific .git/info/exclude file, but the order was swapped from the beginning. This belatedly fixes it. * jc/gitignore-precedence: ignore: info/exclude should trump core.excludesfile
Diffstat (limited to 'dir.c')
-rw-r--r--dir.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/dir.c b/dir.c
index 0c38d86014..4183acc082 100644
--- a/dir.c
+++ b/dir.c
@@ -1673,13 +1673,17 @@ void setup_standard_excludes(struct dir_struct *dir)
const char *path;
dir->exclude_per_dir = ".gitignore";
- path = git_path("info/exclude");
+
+ /* core.excludefile defaulting to $XDG_HOME/git/ignore */
if (!excludes_file)
excludes_file = xdg_config_home("ignore");
- if (!access_or_warn(path, R_OK, 0))
- add_excludes_from_file(dir, path);
if (excludes_file && !access_or_warn(excludes_file, R_OK, 0))
add_excludes_from_file(dir, excludes_file);
+
+ /* per repository user preference */
+ path = git_path("info/exclude");
+ if (!access_or_warn(path, R_OK, 0))
+ add_excludes_from_file(dir, path);
}
int remove_path(const char *name)