[Python-Dev] SVN <-> HG workflow to split Python Library by Module

Brett Cannon brett at python.org
Sat Jul 3 02:34:33 CEST 2010


On Fri, Jul 2, 2010 at 17:17, David Cournapeau <cournape at gmail.com> wrote:
> On Sat, Jul 3, 2010 at 6:37 AM, Brett Cannon <brett at python.org> wrote:
>> On Fri, Jul 2, 2010 at 12:25, anatoly techtonik <techtonik at gmail.com> wrote:
>>> I planned to publish this proposal when it is finally ready and tested
>>> with an assumption that Subversion repository will be online and
>>> up-to-date after Mercurial migration. But recent threads showed that
>>> currently there is no tested mechanism to sync Subversion repository
>>> back with Mercurial, so it will probably quickly outdate, and the
>>> proposal won't have a chance to be evaluated. So now is better than
>>> never.
>>>
>>> So, this is a way to split modules from monolithic Subversion
>>> repository into several Mercurial mirrors - one mirror for each module
>>> (or whatever directory structure you like). This will allow to
>>> concentrate your work on only one module at a time ("distutils",
>>> "CGIHTTPServer" etc.) without caring much about anything else.
>>> Exceptionally useful for occasional external "contributors" like me,
>>> and folks on Windows, who don't possess Visual Studio to compile
>>> Python and are forced to use whatever version they have installed to
>>> create and test patches.
>>
>> But modules do not live in an isolated world; they are dependent on
>> changes made to other modules. Isolating them from other modules whose
>> semantics change during development will lead to skew and improper
>> patches.
>
> I cannot comment on the original proposal, but this issue has known
> solutions in git, in the form of submodules. I believe hg has
> something similar with the forest extension
>
> http://mercurial.selenic.com/wiki/ForestExtension

Mercurial has subrepo support, but that doesn't justify the need to
have every module in its own repository so they can be checked out
individually.


More information about the Python-Dev mailing list