On Wed, Aug 27, 2014 at 3:48 PM, Jaime Soriano Pastor <jsorianopastor@xxxxxxxxx> wrote: > Signed-off-by: Jaime Soriano Pastor <jsorianopastor@xxxxxxxxx> > --- > read-cache.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/read-cache.c b/read-cache.c > index 7f5645e..1cdb762 100644 > --- a/read-cache.c > +++ b/read-cache.c > @@ -1438,6 +1438,21 @@ static struct cache_entry *create_from_disk(struct ondisk_cache_entry *ondisk, > return ce; > } > > +static void check_ce_order(struct cache_entry *ce, struct cache_entry *next_ce) > +{ > + int name_compare = strcmp(ce->name, next_ce->name); > + if (0 < name_compare) > + die("Unordered stage entries in index"); > + if (!name_compare) { > + if (!ce_stage(ce)) > + die("Multiple stage entries for merged file '%s'", > + ce->name); > + if (ce_stage(ce) > ce_stage(next_ce)) > + die("Unordered stage entries for '%s'", > + ce->name); Perhaps consider dropping capitalization from error messages [1] (despite existing code in read-cache.c having a mix of the two styles). See "Error Messages" in Documentation/CodingGuidelines. [1]: http://thread.gmane.org/gmane.comp.version-control.git/251715/focus=253209 > + } > +} > + > /* remember to discard_cache() before reading a different cache! */ > int read_index_from(struct index_state *istate, const char *path) > { > @@ -1499,6 +1514,9 @@ int read_index_from(struct index_state *istate, const char *path) > ce = create_from_disk(disk_ce, &consumed, previous_name); > set_index_entry(istate, i, ce); > > + if (i > 0) > + check_ce_order(istate->cache[i - 1], ce); > + > src_offset += consumed; > } > strbuf_release(&previous_name_buf); > -- > 2.0.4.2.g7bc378e.dirty -- 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