Hi, On Mon, 15 Dec 2008, Junio C Hamano wrote: > Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > > >> merge-recursive: do not clobber untracked working tree garbage > >> ... > >> +static int would_lose_untracked(const char *path) > >> +{ > >> + int pos = cache_name_pos(path, strlen(path)); > >> + > >> + if (pos < 0) > >> + pos = -1 - pos; > >> + while (pos < active_nr && > >> + !strcmp(path, active_cache[pos]->name)) { > >> + /* > >> + * If stage #0, it is definitely tracked. > >> + * If it has stage #2 then it was tracked > >> + * before this merge started. All other > >> + * cases the path was not tracked. > >> + */ > >> + switch (ce_stage(active_cache[pos])) { > >> + case 0: > >> + case 2: > >> + return 0; > >> + } > >> + pos++; > >> + } > >> + return file_exists(path); > > > > I wonder if it is cheaper to test file_exists() when the index contains a > > lot of files... > > "cheaper" than what? Oops. I meant "cheaper to test file_exists() _first_". But thinking about it again, it is probably way more expensive, especially in the cold cache case. Sorry for the noise, Dscho -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html