X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=builtin-commit.c;h=97e64de31228c254f0fe073494dd1f823070bf8e;hb=09b78bc1fc4e525bc68fa0ce76521457717fe675;hp=e3ad38b3bd78bc2d19c5e5d1ebfbe0388b22582e;hpb=01d8ff70f40d8be3c4e2efb245ffc3d013b7fcbf;p=git.git diff --git a/builtin-commit.c b/builtin-commit.c index e3ad38b3b..97e64de31 100644 --- a/builtin-commit.c +++ b/builtin-commit.c @@ -21,16 +21,17 @@ #include "strbuf.h" #include "utf8.h" #include "parse-options.h" -#include "path-list.h" +#include "string-list.h" +#include "rerere.h" #include "unpack-trees.h" static const char * const builtin_commit_usage[] = { - "git-commit [options] [--] ...", + "git commit [options] [--] ...", NULL }; static const char * const builtin_status_usage[] = { - "git-status [options] [--] ...", + "git status [options] [--] ...", NULL }; @@ -45,7 +46,8 @@ static enum { COMMIT_PARTIAL, } commit_style; -static char *logfile, *force_author, *template_file; +static char *logfile, *force_author; +static const char *template_file; static char *edit_message, *use_message; static char *author_name, *author_email, *author_date; static int all, edit_flag, also, interactive, only, amend, signoff; @@ -148,7 +150,7 @@ static int commit_index_files(void) * Take a union of paths in the index and the named tree (typically, "HEAD"), * and return the paths that match the given pattern in list. */ -static int list_paths(struct path_list *list, const char *with_tree, +static int list_paths(struct string_list *list, const char *with_tree, const char *prefix, const char **pattern) { int i; @@ -167,24 +169,24 @@ static int list_paths(struct path_list *list, const char *with_tree, continue; if (!pathspec_match(pattern, m, ce->name, 0)) continue; - path_list_insert(ce->name, list); + string_list_insert(ce->name, list); } return report_path_error(m, pattern, prefix ? strlen(prefix) : 0); } -static void add_remove_files(struct path_list *list) +static void add_remove_files(struct string_list *list) { int i; for (i = 0; i < list->nr; i++) { struct stat st; - struct path_list_item *p = &(list->items[i]); + struct string_list_item *p = &(list->items[i]); - if (!lstat(p->path, &st)) { - if (add_to_cache(p->path, &st, 0)) + if (!lstat(p->string, &st)) { + if (add_to_cache(p->string, &st, 0)) die("updating files failed"); } else - remove_file_from_cache(p->path); + remove_file_from_cache(p->string); } } @@ -219,7 +221,7 @@ static void create_base_index(void) static char *prepare_index(int argc, const char **argv, const char *prefix) { int fd; - struct path_list partial; + struct string_list partial; const char **pathspec = NULL; if (interactive) { @@ -303,7 +305,7 @@ static char *prepare_index(int argc, const char **argv, const char *prefix) die("cannot do a partial commit during a merge."); memset(&partial, 0, sizeof(partial)); - partial.strdup_paths = 1; + partial.strdup_strings = 1; if (list_paths(&partial, initial_commit ? NULL : "HEAD", prefix, pathspec)) exit(1); @@ -877,12 +879,8 @@ static void print_summary(const char *prefix, const unsigned char *sha1) int git_commit_config(const char *k, const char *v, void *cb) { - if (!strcmp(k, "commit.template")) { - if (!v) - return config_error_nonbool(v); - template_file = xstrdup(v); - return 0; - } + if (!strcmp(k, "commit.template")) + return git_config_string(&template_file, k, v); return git_status_config(k, v, cb); }