[ANN] Scmproj 0.5 released

Paul Harris harris.pc at gmail.com
Sun Dec 6 08:58:10 GMT 2009


2009/12/6 Alexander Belchenko <bialix at ukr.net>

> Paul Harris пишет:

> As a side-note,
> > I currently have a system where I keep ALL my projects in one repo, and
> > I have a subdirectory called eg 20090601 where I put all the branches
> > for components in there (including eg the boost sources), for a 'stream'
> > of development.  I can check out all the branches in that subdirectory
> > into another repo (with trees) and do the work in there....   If I do a
> > major release of my app that relies on certain versions of libraries,
> > then I start again with a new subdirectory in the main repo with a new
> > date.   Extra branches are cheap as theres a lot of shared history.
>
> The point of my scmproj is ability to create big project from the set of
> related branches.
> Or build final installer from several projects collecting them into another
> integration superproject.
>
> Are you using the date-folder to keep working state of all components
> together?
>
> Yes, there is unfinished feature in scmproj called snapshot which should
> remember this data for you
> automatically when you commit entire project. I'm working on it now,
> because it's very critical for
> me. Today I'm using tags to "snapshot" related branches. But tags very
> limited in bzr, so I need
> real snapshots anyway.
>
>

The date-folder also provides a home for all the current Tips for that
version of software.   Really, the date-folders should be named after
project versions.
eg "v3" subfolder may contain boost 1.33.1, qt 3 and my v3 of software.   I
can merge patches into the various components and build the v3 software with
the old combination of components.
Then "v4" subfolder has boost 1.40.0 and QT 4.   I can merge patches from
the v3 subfolder if I want.
So if I want to create a fresh build environment on a new computer, I just
check out all the branches inside a particular subfolder and perform the
build procedure.

I also have a "master" subfolder which contains all the tips and various
branches of all the components.


So if I upgrade a component, i'll push the new version to the tip branch in
"master", plus create a new versioned-folder in "master"  eg
master/component_tip  and  master/component_1-2-3

Then I go to my particular build environment (eg a clone of all the folders
in "v4"), and bzr merge from master/component_tip, then check it in and
upgrade the rest of the software to fit the new component.  Last, the
changes are pushed back to the branch in the "v4" subfolder.


So its not quite what I'd call a snapshot... its more like two independent
bundles of branches that evolve independently.  Occasionally I might merge
between v3 and v4.


Is this what you are doing?

cheers,
Paul
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.ubuntu.com/archives/bazaar/attachments/20091206/2bbd648c/attachment.htm 


More information about the bazaar mailing list