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>maint
parent
05b85022c9
commit
2e70c01799
|
@ -933,29 +933,12 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
|
||||||
|
|
||||||
for (i = 0; i < dir.nr; i++) {
|
for (i = 0; i < dir.nr; i++) {
|
||||||
struct dir_entry *ent = dir.entries[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;
|
struct stat st;
|
||||||
const char *rel;
|
const char *rel;
|
||||||
|
|
||||||
/*
|
if (!cache_name_is_other(ent->name, ent->len))
|
||||||
* Remove the '/' at the end that directory
|
continue;
|
||||||
* 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 (lstat(ent->name, &st))
|
if (lstat(ent->name, &st))
|
||||||
die_errno("Cannot lstat '%s'", ent->name);
|
die_errno("Cannot lstat '%s'", ent->name);
|
||||||
|
|
Loading…
Reference in New Issue