Merge branch 'jb/per-user-exclude'

* jb/per-user-exclude:
  add: Support specifying an excludes file with a configuration variable
This commit is contained in:
Junio C Hamano 2007-03-14 01:38:57 -07:00
commit c746e44fb8

View File

@ -12,6 +12,8 @@
static const char builtin_add_usage[] = static const char builtin_add_usage[] =
"git-add [-n] [-v] [-f] [--interactive | -i] [--] <filepattern>..."; "git-add [-n] [-v] [-f] [--interactive | -i] [--] <filepattern>...";
static const char *excludes_file;
static void prune_directory(struct dir_struct *dir, const char **pathspec, int prefix) static void prune_directory(struct dir_struct *dir, const char **pathspec, int prefix)
{ {
char *seen; char *seen;
@ -67,6 +69,8 @@ static void fill_directory(struct dir_struct *dir, const char **pathspec)
path = git_path("info/exclude"); path = git_path("info/exclude");
if (!access(path, R_OK)) if (!access(path, R_OK))
add_excludes_from_file(dir, path); add_excludes_from_file(dir, path);
if (!access(excludes_file, R_OK))
add_excludes_from_file(dir, excludes_file);
/* /*
* Calculate common prefix for the pathspec, and * Calculate common prefix for the pathspec, and
@ -88,6 +92,18 @@ static void fill_directory(struct dir_struct *dir, const char **pathspec)
prune_directory(dir, pathspec, baselen); prune_directory(dir, pathspec, baselen);
} }
static int git_add_config(const char *var, const char *value)
{
if (!strcmp(var, "core.excludesfile")) {
if (!value)
die("core.excludesfile without value");
excludes_file = xstrdup(value);
return 0;
}
return git_default_config(var, value);
}
static struct lock_file lock_file; static struct lock_file lock_file;
static const char ignore_warning[] = static const char ignore_warning[] =
@ -115,7 +131,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)
exit(1); exit(1);
} }
git_config(git_default_config); git_config(git_add_config);
newfd = hold_lock_file_for_update(&lock_file, get_index_file(), 1); newfd = hold_lock_file_for_update(&lock_file, get_index_file(), 1);