Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
clean: use cache_name_is_other()
author
Nguyễn Thái Ngọc Duy
<pclouds@gmail.com>
Fri, 24 Jan 2014 13:40:35 +0000
(20:40 +0700)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 24 Feb 2014 22:37:24 +0000
(14:37 -0800)
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>
builtin/clean.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
05b8502
)
diff --git
a/builtin/clean.c
b/builtin/clean.c
index 5adb52d82a4024b1e769442203dfa49ce25a9818..cb02a5330ac58266ec4bd0414414bc6f08b92ed8 100644
(file)
--- 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];
for (i = 0; i < dir.nr; i++) {
struct dir_entry *ent = dir.entries[i];
- int len, pos;
int matches = 0;
int matches = 0;
- const struct cache_entry *ce;
struct stat st;
const char *rel;
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);
if (lstat(ent->name, &st))
die_errno("Cannot lstat '%s'", ent->name);