refs: loosen restriction on wildcard "*" refspecs
[gitweb.git] / dir.c
diff --git a/dir.c b/dir.c
index 0c38d8601448053f94eca534833d47a975580856..56106c9ae8a954104d2f79aa2a352e7790eb21af 100644 (file)
--- a/dir.c
+++ b/dir.c
@@ -385,7 +385,6 @@ int report_path_error(const char *ps_matched,
        /*
         * Make sure all pathspec matched; otherwise it is an error.
         */
-       struct strbuf sb = STRBUF_INIT;
        int num, errors = 0;
        for (num = 0; num < pathspec->nr; num++) {
                int other, found_dup;
@@ -417,7 +416,6 @@ int report_path_error(const char *ps_matched,
                      pathspec->items[num].original);
                errors++;
        }
-       strbuf_release(&sb);
        return errors;
 }
 
@@ -1673,13 +1671,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)