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