[bzr] repo for bzr

Alexander Belchenko bialix at ukr.net
Wed Mar 23 09:56:51 UTC 2011


Andreas Ostermann пишет:
> Hello Jelmer,
> 
> 2011/3/23 Jelmer Vernooij <jelmer at samba.org>:
>> On Wed, 2011-03-23 at 09:32 +0100, Andreas Ostermann wrote:
>>> Is there anything like repo for bzr?
>> Can you explain what repo is, and in what ways it is different from e.g.
>> bzr-externals?
> 
> Without going to the details (you can find them here:
> http://source.android.com/source/git-repo.html).
> 
> With bzr-externals - as far as I understtod - , like svn-externals,
> you can "link" your repository to an other repository, saying to
> checkout a branch to a folder in your current checkout

<...>

> However, when you now change something to a and commit it, you have to
> change the external link by your own.

That's not true. (I'm not expert in bzr-externals, but I've read its 
code, and I'm the author of scmproj, similar tool). When you do 
high-level commit it records the current snapshot of the entire project 
and update the "link" to other repositories to the current revision-id. 
There is no "manual work" per se. In scmproj we're using special command 
to commit all components and updating snapshot of the entire project. So 
it's kinda similar to "repo" tool you've described.

> 
> with repo which uses git you create something:
> 
> repository a
>     class 1
>     class 2
> repository b
>     class 3
>     class 4
> repository c ("repo" manifest) -> a project
>     a -r 42
>     b -r 48
> 
> You could now checkout c which will internally checkout and b:
> 
> project
>     a
>         class 1
>         class 2
>     b
>         class 3
>         class 4
> 
> and with repo you can make update and status calls at the highest
> level and the tool will iterate through all "sub"-projects. So when
> you change something on class 1, you can either checkin using bzr
> inside the a checkout or using repo to checkin.
> 
> However, when you use repo to make the checkin or even when you used
> bzr directly on project a, and you will be notified that there is a
> change and you must make a repo commit to freeze the configuration.
> 
> This is only a very rough explanation.

As I understand it, it's very close to what scmproj does today. Maybe 
there are several differences here and there, but in the general close 
enough (in my eyes). I know that scmproj should be improved because it 
lacks today the ability to report about the need to update the snapshot 
of the entire project. I need this feature too, have to find the right 
time to implement it.

> And repo has own disadvantages, which sometimes drive me crazy.

scmproj is not ideal too, but I have to live with it because there is no 
other tool for this stuff. I think I understand you, of course our views 
of disadvantages are different, but may overlap.

> What I / we need is a tool for version projects, where a project is a
> collection of repositorys.

Can I suggest you take a look at scmproj and give it a shot? I 
understand your situation because my needs is very close to yours. Maybe 
(or maybe not) we can improve the existing scmproj tool instead of 
starting new one from scratch. I don't say the scmproj is very good code 
base, but it could be used at least as starting point.




More information about the bazaar mailing list