Subject: Re: [PATCH 2/8] bundle: use libified rev-list --boundary

From: Jonathan Nieder <[email-masked]>
Date: Wed, 30 Jun 2010 15:34:51 -0500

Junio C Hamano wrote:
> Jonathan Nieder <[email-masked]> writes:

>> The revision walker produces structured output, which should be a
>> little easier to work with than the text from rev-list.
>
> Hmm, doesn't it negatively affect later traversal you would need to do if
> you smudged the flag bits by running revision traversal like this?

I imagine so.  I fear this would be the first git command to use the
revision walker twice, and I am not sure whether we can really make that
work.

The revision walker uses object flags for the following purposes:

 - marking objects uninteresting/SYMMETRIC_LEFT.  Luckily for us, if
   an object is uninteresting or SYMMETRIC_LEFT for the first
   --boundary walk, it will be likewise for pack-objects, too.

 - history simplification (TREESAME), --cherry-pick (SHOWN),
   --merge (SYMMETRIC_LEFT).  There are already other reasons to
   disallow these features for bundle.

 - add_parents_to_list (ADDED, SEEN).  This one is really worrisome;
   should we walk through again to throw away the added parents?
   Should there be a pass through all revisions to clear the ADDED
   bit?

I’ll figure out a one-pass solution. :(

Jonathan