summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2014-01-24 13:40:35 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-02-24 22:37:24 (GMT)
commit2e70c01799bf663cc1fa5f6e37e025000ffdc0b0 (patch)
treea93f1b30bb5f1fdef0dcf627d351c141dcd6cd53
parent05b85022c9a76954a1a281a5dc5bcd32ad486b88 (diff)
downloadgit-2e70c01799bf663cc1fa5f6e37e025000ffdc0b0.zip
git-2e70c01799bf663cc1fa5f6e37e025000ffdc0b0.tar.gz
git-2e70c01799bf663cc1fa5f6e37e025000ffdc0b0.tar.bz2
clean: use cache_name_is_other()
cmd_clean() has the exact same code of index_name_is_other(). Reduce code duplication. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/clean.c21
1 files changed, 2 insertions, 19 deletions
diff --git a/builtin/clean.c b/builtin/clean.c
index 5adb52d..cb02a53 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -933,29 +933,12 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
for (i = 0; i < dir.nr; i++) {
struct dir_entry *ent = dir.entries[i];
- int len, pos;
int matches = 0;
- const struct cache_entry *ce;
struct stat st;
const char *rel;
- /*
- * Remove the '/' at the end that directory
- * walking adds for directory entries.
- */
- len = ent->len;
- if (len && ent->name[len-1] == '/')
- len--;
- pos = cache_name_pos(ent->name, len);
- if (0 <= pos)
- continue; /* exact match */
- pos = -pos - 1;
- if (pos < active_nr) {
- ce = active_cache[pos];
- if (ce_namelen(ce) == len &&
- !memcmp(ce->name, ent->name, len))
- continue; /* Yup, this one exists unmerged */
- }
+ if (!cache_name_is_other(ent->name, ent->len))
+ continue;
if (lstat(ent->name, &st))
die_errno("Cannot lstat '%s'", ent->name);