[Zope-dev] Launchpad gardening
Gary Poster
gary.poster at gmail.com
Thu Apr 15 14:58:07 EDT 2010
On Apr 15, 2010, at 1:27 PM, Tres Seaver wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Gary Poster wrote:
>> On Apr 15, 2010, at 12:51 PM, Sidnei da Silva wrote:
>>
>>> On Thu, Apr 15, 2010 at 12:41 PM, Leonardo Rochael Almeida
>>> <leorochael at gmail.com> wrote:
>>>> Thanks Tres and Sidnei,
>>>>
>>>> My questions were intended to go to the list anyway.
>>>>
>>>> Can we take a branch from the launchpad mirror and bind it back
>>>> directly at svn+ssh://svn.zope.org/ to commit?
>>>>
>>>> For instance, say I'm reviewing a bugfix proposed by someone that
>>>> doesn't currently have access to svn.zope.org but added a
>>>> merge-proposal to lp, can I branch it, bind it to
>>>> svn+ssh://svn.zope.org and then commit?
>>>>
>>>> Wouldn't it be nice if it was possible?
>>> Not sure if it would. What you really want to do is to merge the bzr
>>> branch you got from Launchpad into the 'trunk' you got from
>>> svn.zope.org, which behaves exactly as Tres described on his previous
>>> email. Pushing the branch directly without merging first would
>>> overwrite the contents of the target branch with the contents of the
>>> pushed branch.
>>
>> I didn't think this was true, so I checked another source. :-)
>>
>> bzr does not allow that, actually--at least for bzr branches, and I
> suspect for svn branches. If the branches are diverged, you can't just
> push. You need to merge and then push.
>>
>> But, my source for bzr knowledge warns me, "if you merge with the
> public version, and then try to push to the public version, your revno
> will change, and that will confuse people." So, a better story is to use
> bzr as if it were svn at that point: bzr co the trunk, bzr merge your
> changes, and bzr commit.
>>
>> If the Launchpad import of a given SVN package was recently created
> (since late 2009) then it works quite nicely.
>>
>> If it was made earlier, you will encounter hiccups.
>>
>> With the new imports I've done stuff like this.
>>
>> - bzr branch the import from LP.
>> - Make changes locally and commit.
>> - push branch to LP
>> - make a merge proposal on LP and get a review
>> - bzr push the branch to a new branch on zope's svn (each commit you made locally shows up separately even though it is one big push)
>> - bzr co the svn trunk, merge my changes, and commit.
>>
>> It's quite nice. Handling merges is wildly nicer in the correct dvcs
>> options than svn.
>>
>> The only limitation for bzr right now is that bzr doesn't handle svn
>> externals. That's slated to change this year, I think. If people
>> are curious, Sidnei or I could reach out and get more details of the
>> timeline.
>
> - From my research, support for svn:externals in bzr-svn is actually
> blocked on an upstream bzr feature which is itself stalled (no activity
> for 2 years now, I think).
Yes. That's the thing that should be worked on soonish.
> svn:externals are already kind of a wart, although recent SVN versions
> have fixed one long-standing issue (they allow relative externals now).
> I think we have a few recurring patterns in the repository:
>
> - using an external to pull in $ZSVN/bootstrap, rather than copying
> the bootstrap.py file. I'm ambivalent here, and could easily see
> dumping the external.
>
> - using an external to work around setuptools' inablility to install
> headers in a useful way, e.g. Zope's 'include' directory. Maybe
> a new recipe would be better?
Not clear if it would help, but I'm actively maintaining z3c.recipe.filetemplate. In the process of adding support for relative paths.
>
> - using externals to stitch together omnibus buildouts, e.g.
> CMF.buildout. We could probably use something like
> 'infrae.subversion' instead, maybe with a hook that allowed
> local customization of the command used to fetch the sub-checkout.
That would be cool.
More information about the Zope-Dev
mailing list