From: Junio C Hamano Date: Mon, 11 Sep 2006 23:57:37 GMT Subject: Re: Start handling references internally as a sorted in-memory list Message-ID: <7vsliyez2m.fsf@assigned-by-dhcp.cox.net> In-Reply-To: Linus Torvalds writes: > This also adds some very rudimentary support for the notion of packed > And yeah, I know that the "sorting" code is O(n**2) thanks to doing an > insertion sort into a simple linked list. Tough. I didn't care enough to > do it well. With "n" usually being a few hundred at most, we really don't > care, and if we ever do, we _can_ fix it later on to use a heap or > something. I thought what triggered the restructuring of this part was N actually being large enough to cause pain to some people, so I suspect later might need to be reasonably soon ;-). > +static const char *parse_ref_line(char *line, unsigned char *sha1) > +{ > + /* > + * 42: the answer to everything. > + * > + * In this case, it happens to be the answer to >... Rof,l. I've been wondering what happens if you pack "refs/heads/foo", delete it, and create "refs/heads/foo/bar" with your proposal. I'll find the answer (which is _not_ "42") in the updated do_for_each_ref(), I guess.