ls-files: --others should not say unmerged paths are unknown.
Jon Loeliger noticed that an unmerged path appears as "Untracked" in git-status output, even though we show the same path as updated/changed. Since --others means "we have not told git about that path", we should not show unmerged paths -- obviously, git knows about them; it just does not know what we want to do about them yet. Signed-off-by: Junio C Hamano <junkio@cox.net>maint
parent
0cfddacdcc
commit
fcbc3083e3
26
ls-files.c
26
ls-files.c
|
|
@ -348,6 +348,29 @@ static void show_dir_entry(const char *tag, struct nond_on_fs *ent)
|
||||||
putchar(line_terminator);
|
putchar(line_terminator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void show_other_files(void)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < nr_dir; i++) {
|
||||||
|
/* We should not have a matching entry, but we
|
||||||
|
* may have an unmerged entry for this path.
|
||||||
|
*/
|
||||||
|
struct nond_on_fs *ent = dir[i];
|
||||||
|
int pos = cache_name_pos(ent->name, ent->len);
|
||||||
|
struct cache_entry *ce;
|
||||||
|
if (0 <= pos)
|
||||||
|
die("bug in show-other-files");
|
||||||
|
pos = -pos - 1;
|
||||||
|
if (pos < active_nr) {
|
||||||
|
ce = active_cache[pos];
|
||||||
|
if (ce_namelen(ce) == ent->len &&
|
||||||
|
!memcmp(ce->name, ent->name, ent->len))
|
||||||
|
continue; /* Yup, this one exists unmerged */
|
||||||
|
}
|
||||||
|
show_dir_entry(tag_other, ent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void show_killed_files(void)
|
static void show_killed_files(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
@ -438,8 +461,7 @@ static void show_files(void)
|
||||||
read_directory(path, base, baselen);
|
read_directory(path, base, baselen);
|
||||||
qsort(dir, nr_dir, sizeof(struct nond_on_fs *), cmp_name);
|
qsort(dir, nr_dir, sizeof(struct nond_on_fs *), cmp_name);
|
||||||
if (show_others)
|
if (show_others)
|
||||||
for (i = 0; i < nr_dir; i++)
|
show_other_files();
|
||||||
show_dir_entry(tag_other, dir[i]);
|
|
||||||
if (show_killed)
|
if (show_killed)
|
||||||
show_killed_files();
|
show_killed_files();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue