scmproj: plugin for organizing set of VCS branches as complex project

Alexander Belchenko bialix at ukr.net
Tue Dec 23 13:29:04 GMT 2008


Jelmer Vernooij пишет:
> Am Montag, den 22.12.2008, 17:11 +0200 schrieb Alexander Belchenko:
>> I'd like to present new plugin for bzr: scmproj.
>>
>> This plugin is designed to help handling complex project configurations
>> where each project component is actually separate branch.
>> This plugin inspired by CVS modules, svn:externals, hg forest extension,
>> git submodules support and Bazaar Nested Trees specification.
>>
>> Project at Launchpad: https://launchpad.net/bzr-scmproj
>>
>> Basic idea of the plugin is: you describe your project in the special config,
>> provide for each project component information about where to get the
>> source branch and where to put working copy of the component in the
>> local project workspace. Then you're using special project-* commands
>> (provided by scmproj plugin) to work with entire project as single unit.
>> (Well, almost).
> How does it relate to Robert's config-manager tool ? From your
> explanation, I gather it's a bit like it but more integrated with bzr.
> Is that correct ?

I've pulling config-manager branch and read all available documentation.
So, speaking broadly your resume is correct. My plugin and config-manager
tool have some common points in ideas, but not in the implementation.

As I understand config-manager only helps to recreate some project structure
based on config and then optionally update component branches.

I'm trying to provide the way to work with the project as the whole.
I.e. running commands like status, diff, commit for component branches.
But my plugin is not "more integrated with bzr", because where possible
I'm trying to run bzr commands via bzrlib.commands.run_bzr, while
config-manager seems to use bzrlib API directly.

Also, some fact I've gathered about config-manager code and implementation:

* last commit in its branch dated with March 2006. So it's perhaps very mature tool,
in the same time it means it's not developed anymore.
* it has python and C++ sources. But it seems like now only python code used
to run
* it has incomplete setup.py, so after python setup.py install you'll end up
with inoperative installation
* it has strict dependency on pybaz. I don't need pybaz and have no desire
to figure out how hard it to be removing this dependency
* config-manager uses very simple config. It's good for its needs. I want to create
more powerful solution, so I need to use more verbose config.
* it's only provide you commands to get branches for project and then update them.
I see following defined commands: build, show, update.

I'd say config-manager probably good solution for them who need only to get branches.
I need a bit more than that.

Alexander




More information about the bazaar mailing list