On different ways to combine trees

Alexander Belchenko bialix at ukr.net
Fri Jul 26 17:19:14 UTC 2013


You have explained scmproj very close to its reality, thanks.
Actually, when I was started it, I wanted it to support several vcs 
systems by simple config definition. The rudiment support for this you 
can see in vcs.py module of that plugin.
I think starting from the scratch makes sense here, using CLI as API 
to different systems will help you to quickly make a working prototype 
of your idea.

AFAIR, you can specify revision -r-1 in externals and scmproj configs 
to tell those suystems you want always latest revision of some components.

For me, the biggest problems with scmproj were:
1) I didn't provide a way to override source URL for components while 
getting snapshotted project. So any change in locations of components 
are disastrous.
2) The good idea of bzr "one branch - one URL" was not so good for 
scmproj's snapshots (partly because of previous problem). I'd like to 
have bzr branch/pull with explicit revid to work directly with shared 
repository and don't require a real branch object.
3) I've tried to make plugin too universal from the start. But ended 
up with 2 re-writes, and had to reduce number of available features 
based on real working experience.
4) Separate set of commands sometimes is good, but even with 
bzr-externals you don't have proper GUI support, like combined 
status/diff/log over all trees.
5) Big number of components, even divided into subprojects are proved 
to be a bad thing for me. It's hard to work with.

In the end I was very impressed by git-subtrees idea. It solves a lot 
of the problem I had with scmproj in more simpler way.

If you have some specific questions about scmproj and why it is as it 
is now, I'll be glad to answer.

Alexander



More information about the bazaar mailing list