[Idle-dev] idle-fork, cvs advice anyone?

StephenM.Gava StephenM.Gava
Tue, 26 Jun 2001 16:53:19 +1000


On Tue, 26 Jun 2001 01:55pm, Kurt B. Kaiser wrote:
> Stephen M. Gava <elguavas@users.sourceforge.net> writes:
> > I'm in the process of trying to merge python/idle cvs into a branch of
> > idle-fork cvs, but my previous cvs experience hasn't included merging
> > from external sources and I want to make sure I'm going about this right.
> >
> > >From reading as many cvs docs I as I could lay my hands on I've formed
> > > the impression that best way to acheive the desired result would be to 
> > >follow these steps:
> >
> > 1. Tag the existing idlefork cvs pre branch point. (done)
> > 2. Create idlefork cvs merging branch. (done, as
> > "branch-python_idle_merging") 3. Export current python/idle cvs. (done)
> > 4. Import python/idle cvs to idlefork cvs as a vendor branch. (maybe
> > done, after 3 tries,  with vendor tag "PYTHON_CVS_IDLE" and version tag
> > "IMPORT_1_1")
> > 5. Merge python/cvs vendor branch into idlefork merge branch. (not done)
> > 6. Merge idlefork merge branch back into idlefork trunk. (not done)
> >
> > For starters. Are the above steps a sensible process to achieve the
> > desired result?  (This merge will need to be done from time to time, so I
> > want to have a good way of doing it right form the start.)
>
> Hi Steven,
>
> I've been looking at this also! As an initial comment, it appears that
> Scherer imported the VPython IDLE into a vendor branch (1.1.1, the default)
> last summer, and you have imported the Python IDLE into the same vendor
> branch. 

Ahh, damn. I noticed the VPython branch when I first looked at idlefork, but 
then I subsequently forgot about it when I was trying to import an "official 
python idle" vendor a couple of days later. I guess, if the vendor branch is 
the right way to go for what I was hoping to achieve, I should have imported 
a vendor branch with an explicitly different branch number.

> This had the effect of removing Scherer's changes. For example,
> look at AutoIndent.py, where Scherer had 1.1.1.1 and the Python IDLE
> version is 1.1.1.2.
>
> The exception to this is the two cases (spawn.py, protocol.py) where Riley
> had updated the VPython IDLE. There the HEAD has moved to MAIN, and your
> import is not yet merged. (When a vendor branch is updated locally, HEAD
> moves off the branch to MAIN.)
>
> At this point I see "official-idle" at the top level, parallel with
> [VPython] IDLE. I also see [Python] idle as a directory within the
> [VPython] idle tree. Finally, I see [Python] IDLE as 1.1.1.2 revs in the
> [Vpython] idle tree. 

Yep. These were attempts 1, 2, and 3 by me to import python-idle as a vendor 
without remembering that the Vpython vendor branch was already there. 

> As far as the overall structure goes, it seems we're trying to merge two
> variants of IDLE. 

Yes. merging python-idle into the changes that have so far been made on the 
idlefork trunk. This will need to be done from time to time.  (although, I 
had intended to merge python-idle into a new branch of ithe idlefork trunk 
made just for this purpose, and then to merge that branch back to the trunk) 

> Are you assuming that the VPython version is the starting
> point and the trunk of the development? 

No I was assuming idlefork/idle was the trunk and that Vpython was added as a 
vendor branch (quite some time ago) so that desired Vpython changes could be 
mereged into idlefork/idle, and that this had already been done, so that 
idlefork/idle is where the action is and where the python-idle changes need 
to end up.  Then I stupidly forgot about the Vpython vendor branch when 
attempting step 4. on my list above.

> As you say, we'll want to update
> IDLE-fork from Python IDLE once in a while to add bug fixes, although there
> are so few, it could be done manually.

Yep.   Are there really so few changes? 

Huh, I'm just familiarising myself with the sources as a whole and I thought 
with the changes already made to idlefork (David Scherer told me that he 
already has a different variation of "separate process for execution" [which 
I was thinking may have originated in Vpython] in there and some other 
changes ), plus the changes in python-idlle since idlefork was forked off (it 
was forked at python-idle 0.5 I think, and python-idle in python 2.1 is 0.8, 
and Guido tells me he has made fresh changes since then), that there would be 
a significant amount of meging and conflict resolution to be done...   

That was one of my reasons for  wanting to import python-idle as a vendor 
branch rather than just using diff and patch and whatnot and doing it by hand 
locally and then just merging back to idlefork (or to a new branch at least 
at first).  

> I'm thinking about what might be the simplest structure (and how to get
> there). Vendor branches are tricky!

Hmm, so it seems for me at least...  8^{   My other reason for putting 
python-idle in as a vendor branch (unsucessfully, it seems), was because all 
the cvs admin stuff I read seemed to indicate that this was the way to handle 
external sources that will need to be repeatedly merged?

By all means if you can think of the simplest structure and how to get there 
to acheive this aim please do so, it would be a great help I think especially 
for future easy repeatability of the python-idle to idlefork merge. Maybe 
idlefork cvs does need to be put put in a new structure right from the start 
of this brave new era of idlefork? The idea hadn't occurred to me. What I've 
done so far with the failed vendor branches should be recoverable, I also 
tagged before I started, but if the last tarballs of idlefork are up to date 
we could even start a new repository from scratch if it was absolutely 
nesscesary I guess.   
>
> Regards, KBK

Anyway Kurt, thanks a lot for the help! 
Regards,
Stephen.
-- 
Stephen M. Gava
<elguavas@users.sourceforge.net>
"More power to those who don't care for it." - anon