From: Junio C Hamano Date: Fri, 24 Feb 2006 00:17:42 GMT Subject: Re: [PATCH] Add git-annotate, a tool for assigning blame. Message-ID: <7vek1thaop.fsf@assigned-by-dhcp.cox.net> In-Reply-To: Johannes Schindelin writes: >> > This could probably benefit a *LOT* from the libification project, I >> > think, though. >> >> Yes, perhaps. Some of the git-rev-list bits might simplify a couple of >> things. > > The major problem is probably not solved: What Linus calls a "stream > interface". > > I.e. if you pipe the output of git-rev-list to another program, you > *need* to execute the two semi-simultaneously. The "alternative" would be > to use buffers, which can get huge (and are sometimes not needed: think > git-whatchanged, which starts outputting before it's getting no more > input). You need a limited coroutine support, something like generator functions in Python ;-). In C, traditional way of doing it is to make your application specific function a callback of rev-list or whatever generator is, which is very unpleasant to code. >> I have found some severe problems with the code I posted, in >> particular it doesn't handle parallel development tracks at all. I am >> working on fixing it, but it isn't finished yet. > > Looking forward to them! Likewise.