How to communicate with upstream sources intelligently

Jari Aalto+usenet jari.aalto at cante.net
Thu Jun 29 00:01:18 BST 2006


* Wed 2006-06-28 John Arbash Meinel <john AT arbash-meinel.com>
* Message-Id: 44A3021D.7080308 AT arbash-meinel.com
>
> If I understand correctly, all 3 changes were done on separate branches.

Yes, but should I use "init-repo" and branch inside it? I'm still
learning what would be the best way to use the tool.

> Is there anything preventing you from doing:
>
> bzr branch TRUNK-1.0 TRUNK-1.1
> cd TRUNK-1.1
>
> # update from 1.1.tar.gz
> bzr commit -m "version 1.1"

Sure. What I had in mind is that I keep all upstream
version in common line, so that it is possible to
see easily what has changed between 1.0 and 1.1

    TRUNK => 1.0 => 1.1

In your version the branch is separate with disk space as well.
Could you elaborate this a little more.

> cd ..
> bzr branch TRUNK-1.1 change-1.1-B
> cd change-1.1-B
>
> bzr merge ../change-1.0-B
> # Resolve conflicts
> bzr commit -m "Ported change B to 1.1"

This pieace was what I was missing.

> The point is to create a pristine 1.1 from the pristine 1.0 (to preserve
> file ids), and then just create a working branch for 1.1-B, and merge
> the old changes into it.
>
> It should pick a valid base since it came from the same tree that 1.1 is
> coming from.
>
> Am I missing something in your workflow?

Perfect. Did you spot anything that could be, in principle, done
better or track changes more effectively?

Jari

>> INITIAL SITUATION
>> 
>>     upstream        import to local TRUNK (bzr init; bzr ci)
>>     v1.0            => imported copy from tar.gz
>> 
>> CURRENT WORK FLOW
>> 
>>     The packages could use some improvements, isolate changes, so make
>>     branch for each:
>> 
>>     local TRUNK        => branch to change-1.0-A
>>                        => branch to change-1.0-B
>>                        => branch to change-1.0-C
>> 
>>     Write code, test, and submit individual patches to
>>     upstream from the branches (bzr diff):
>> 
>>         patch-1.0-A
>>         patch-1.0-B
>>         patch-1.0-C
>> 
>>     Upstream accepts A, and C. Did not yet respond to B. In the mean
>>     while time passes and upstream releases v1.1, which needs to be
>>     imported to TRUNK to make it current.
>> 
>>     upstream        local TRUNK (bzr ci)
>>     v1.1            => untar *.tar.gz and "ci" this as "1.1"
>> 
>>     Now, the branches A and C are no longer needed, but
>>     what should be done to B? Suppose that the source has
>>     changed significantly, so what is the easiest way
>>     to merge
>> 
>>         1.1 + changes in branch-1.0-B 
>> 
>>     to make it branch-1.1-B and submit that to upstream?
>> 
>> I'm sure I'm not using brz to its fullest potential yet, so please
>> welcome improvements and ideas that might work better.
>> 
>> Jari
>> 
>> 
>> 





More information about the bazaar mailing list