[ANN] Scmproj 0.5 released

Alexander Belchenko bialix at ukr.net
Sun Dec 6 16:14:52 GMT 2009


Paul Harris пишет:
> I look forward to hearing about your snapshots feature becoming available.

I'm working on it now, and hope they will be available in trunk in next few weeks.

> I'm confused about where the scmproj project file will be stored in
> terms of my repo... I did this:
> 
> mkdir /build (with root, changed ownership)
> cd /build
> mkdir client_a
> cd client_a
> bzr init-repo --trees .    (i do this so that i maximise the shared repo
> across multiple working dirs)
> mkdir 4.0
> cd 4.0
> bzr pinit .
> < edit project.cfg, like so:
> 
> [component "cmake"]
> RELPATH = cmake
> BRANCH_URL = file:///master_repo/cmake_trunk
> 
> [component "boost"]
> RELPATH = boost
> BRANCH_URL = file:///master_repo/boost_trunk
>>
> bzr pup
> 
> that worked well, but I see that .scmproj has its own .bzr directory...
> shouldn't it use my shared_repo .bzr to store its stuff?

No, it uses separate control branch for historical reasons. Initially I want to make scmproj plugin
much more universal tool, supporting more vcs than just bzr, put much more objects in .scmproj
directory to workaround some bzr limitations... But the life has corrected my plans and I've started
to cut the ideas and features. And this is good! KISS principle has its own merits, especially when
I have too little free time and too much ideas.

> and second... i wanted to store my project config in my master repo, so
> i did something like this:
> 
> cd /master_repo   (it is a no-trees repo)
> mkdir projects
> cd projects
> ... normally i would do bzr clone /build/client_a/4.0 4.0    but that
> doesn't work
> i tried bzr pget /build/client_a/4.0
> but now I have .scmproj files in my repo !
> 
> can you tell me how and when the project.cfg file is committed, updated,
> diffed, etc.
> i want that stored in the master repo for backup and data maintenance
> reasons.

Currently I'm using scmproj this way:

1) For every new project I initialize new control directory:

bzr pinit foo

In the foo folder there is control directory .scmproj. Cd to this directory and edit project.cfg.
Commit once you ready. Push to the master repo (in my case this is smart-servered repo)

bzr push bzr://sever/Projects/foo

2) In project.cfg there is info about project's components. So I can checkout project on any machine:

bzr pget bzr://sever/Projects/foo

As I said this separate control branch (.scmproj) there for historical reasons, if you read full
devel document something might be more clear (or not). It' a bit confusing, I know, sorry.

But today my goal is to get rid of this separate control branch and put project config to top-level
component of the project, so things become more simpler and straightforward. You can follow new
design document:

So to be clear: scmproj v.0.5 and below is design v1 line; scmproj v.0.6+ (in development) will
support design v2 by default (with backward read-only support of design v1). I hope to get design v2
working ASAP, but can't promise.




More information about the bazaar mailing list