> + if (!strcmp(pair->one->path, pair->two->path)) { > + /* > + * Paths should only match if this was initially a > + * non-rename that is being turned into one by > + * directory rename detection. > + */ > + assert(pair->status != 'R'); > + } else { > + assert(pair->status == 'R'); assert() is compiled conditionally depending on whether NDEBUG is set, which makes potential error reports more interesting and head-scratching. But we'd rather prefer easy bug reports, therefore we'd want to (a) either have the condition checked always, when you know this could occur, e.g. via if (<condition>) BUG("Git is broken, because..."); or (b) you could omit the asserts if they are more of a developer guideline? I wonder if we want to introduce a BUG_ON(<condition>, <msg>) macro that contains (a). > + re->dst_entry->processed = 1; > + //string_list_remove(entries, pair->two->path, 0); commented code?