path: root/builtin/clean.c
diff options
authorNguyễn Thái Ngọc Duy <>2014-01-24 13:40:33 (GMT)
committerJunio C Hamano <>2014-02-24 22:37:19 (GMT)
commitae8d0824217bdf97c69ead49568cd03fc140627b (patch)
treec188d3275e08dd074476d03a8656981dbd5ef643 /builtin/clean.c
parent68690fdd0b78762eb6387d7a437b588d15b6cf47 (diff)
pathspec: pass directory indicator to match_pathspec_item()
This patch activates the DO_MATCH_DIRECTORY code in m_p_i(), which makes "git diff HEAD submodule/" and "git diff HEAD submodule" produce the same output. Previously only the version without trailing slash returns the difference (if any). That's the effect of new ce_path_match(). dir_path_match() is not executed by the new tests. And it should not introduce regressions. Previously if path "dir/" is passed in with pathspec "dir/", they obviously match. With new dir_path_match(), the path becomes _directory_ "dir" vs pathspec "dir/", which is not executed by the old code path in m_p_i(). The new code path is executed and produces the same result. The other case is pathspec "dir" and path "dir/" is now turned to "dir" (with DO_MATCH_DIRECTORY). Still the same result before or after the patch. So why change? Because of the next patch about clean.c. Signed-off-by: Nguyễn Thái Ngọc Duy <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'builtin/clean.c')
1 files changed, 1 insertions, 1 deletions
diff --git a/builtin/clean.c b/builtin/clean.c
index f59c753..4c9680a 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -962,7 +962,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
if (
matches = match_pathspec(&pathspec, ent->name,
- len, 0, NULL);
+ len, 0, NULL, 0);
if (S_ISDIR(st.st_mode)) {
if (remove_directories || (matches == MATCHED_EXACTLY)) {