[PATCH v2 05/16] blame: accept multiple -L ranges

2013-08-06 Thread Eric Sunshine
git-blame accepts only a single -L option or none. Clients requiring blame information for multiple disjoint ranges are therefore forced either to invoke git-blame multiple times, once for each range, or only once with no -L option to cover the entire file, both of which can be costly. Teach

Re: [PATCH v2 05/16] blame: accept multiple -L ranges

2013-08-06 Thread Junio C Hamano
+ for (range_i = ranges.nr; range_i 0; --range_i) { + const struct range *r = ranges.ranges[range_i - 1]; + long bottom = r-start; + long top = r-end; + struct blame_entry *next = ent; + ent = xcalloc(1, sizeof(*ent)); +

Re: [PATCH v2 05/16] blame: accept multiple -L ranges

2013-08-06 Thread Junio C Hamano
Eric Sunshine sunsh...@sunshineco.com writes: Each constructed blame_entry must own a reference to the suspect. o-refcnt should equal the number of blame_entries. At construction, a 'struct origin' has refcnt 1. In the original code, which supported only a single initial range (blame_entry),