Skip to content

Commit

Permalink
clean: use cache_name_is_other()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Nguyễn Thái Ngọc Duy authored and Junio C Hamano committed Feb 24, 2014
1 parent 05b8502 commit 2e70c01
Showing 1 changed file with 2 additions and 19 deletions.
21 changes: 2 additions & 19 deletions builtin/clean.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 2e70c01

Please sign in to comment.