diff --git a/builtin/commit.c b/builtin/commit.c
index e1af9b19f0be71484ae9341762dc2bf89cabb70c..776fa81f7484e2bc54651006097f52e0e0f740a8 100644 (file)
--- a/builtin/commit.c
+++ b/builtin/commit.c
;
m = xcalloc(1, i);
- if (with_tree)
- overlay_tree_on_cache(with_tree, prefix);
+ if (with_tree) {
+ const char *max_prefix = pathspec_prefix(prefix, pattern);
+ overlay_tree_on_cache(with_tree, max_prefix);
+ }
for (i = 0; i < active_nr; i++) {
struct cache_entry *ce = active_cache[i];
item->util = item; /* better a valid pointer than a fake one */
}
- return report_path_error(m, pattern, prefix ? strlen(prefix) : 0);
+ return report_path_error(m, pattern, prefix);
}
static void add_remove_files(struct string_list *list)