[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to cope with patches sanely

On Mon, 25 Feb 2008 19:11:16 -0500, David Nusinow <dnusinow@speakeasy.net> said: 

> On Sun, Feb 24, 2008 at 09:31:10PM -0600, Manoj Srivastava wrote:
>> On Mon, 25 Feb 2008 10:34:55 +1100, Ben Finney
>> <bignose+hates-spam@benfinney.id.au> said:
>> > Manoj Srivastava <srivasta@debian.org> writes:
>> >> David Nusinow <dnusinow@speakeasy.net> said:
>> >> 
>> >> > No matter what you want to say about your feature branches, you
>> >> > *must* apply them in a linear fashion to your final source tree
>> >> > that you ship in the package. This is no way around it.
>> >> 
>> >> But there is no such linearization, not in the way that quilt et
>> >> al do it. The state of such integration is not maintained in the
>> >> feature branches; it is in the history of the integration branch.
>> > Is this (the integration branch and its history of changes) not the
>> > linear sequence of changes that David Nusinow is asking for?
>> No, it is not. I Apply a update to feature A. The comes an upstream
>> update. Then updates on feature B, a patch that needed conflict
>> resoution, then patches on branches C, D, and A again. Another
>> upstream change.
>> At this point, none of the original patches to A, B, and C apply any
>> more -- and then come another upstream update, and all the patches
>> get even more bent out of shape.

> At this point, before you're ready to release, you regenerate the
> patches.  Then they apply just fine. Nothing gets bent out of shape
> and you don't include old code in your patch that's now incorporated
> upstream, you just make an appropriate diff that applies cleanly to
> your source package. I don't see what the problem is here and why you
> believe this can't be done.

        Sure, I can re-generate the patches: but then I have to do all
 the integration work that I did for the integration branch over the
 years, and I have to do this over and over and over again every single
 darn package upload.

        And why am I doing all this busy work?

        A compromise would be to provide a patch for each pure fearure
 branch, along with the giant diff -- this can be automated.  But these
 individual patches will not apply in sequence unless the manual
 integration work is done again -- which is not something I am willing
 to do for every package upload.


#else /* !STDSTDIO */ /* The big, slow, and stupid way */ --Larry Wall
#in str.c from the perl source code
Manoj Srivastava <srivasta@debian.org> <http://www.debian.org/~srivasta/>  
1024D/BF24424C print 4966 F272 D093 B493 410B  924B 21BA DABB BF24 424C

Reply to: