multilocation/batch processing

Marius Kruger amanic at gmail.com
Thu Dec 11 11:45:04 GMT 2008


hi all,
so there has been talk again about multi-push, multi-pull, repo-push,
bzr-mirror
and I also know about *recursive-upgrade*.
Yesterday I also wrote essentially a multi-bind plugin which can rebind
complicated
directory structures on a (in our case new) central repository.
https://code.launchpad.net/~amanica/+junk/bzr-multilocation
(we have about 40 components in our system where each has its own branch,
moving the central server is quite painful. Man I could use nested trees
right about now)

I envisage a more uniform way of going about this.
I want to endeavour to write a single plugin which aids in batch processing
bzr commands.
1) If its in a single plugin we can re-use a lot of the mechanics, and we
can be more consistant in the approach.

2) I have found that for example the multi-bind command needs to take a
number of extra commands than the normal bind, to make it really powerfull
as a batch process. So to me it makes sense to define yet another category
of bzr commands
(a la qlog, gannotate). I'm thinking of pre-pending a 'm' for multi or a 'b'
for batch.

3) I would like  a simple way for these batch-processing commands to work
for different location scenarios:
bzr bbind -b recurse:.   (recurses from specified path)
bzr bbind -b multi:x,y,z/zz   (specify multiple locations)
bzr bbind -b repo:/my_repo  (does all branches in repo)
bzr blog -b multi:sftp://example.com/branch,http://example.com/branch2 -c -1
-v  (this one has a nice ring to it:)
bzr bookmark mybookmark multi:sftp://example.com/branch,x,y
bzr bstatus -b bm:mybookmark --short
bzr bmissing -b recurse:. -b exclude:./not_me  (recurses from specified
path, but exclude specific paths/patterns)

4) examples of extra options to make it very usefull in batch mode
local_dir> bzr checkout -b
recurse:sftp://example.com/some_dir--create-directory-structure
should recreate teh directory structure found on the server eg.
some_dir/x/branch1
some_dir/x/y/branch2
should create it locally too;
local_dir/x/branch1
local_dir/x/y/branch2

bzr bbind -b bm:my_list_of_branches bzr+
https://new_central_server.co.za/bzr/dx6180/1-dev --relative-to ~
--update-push-location --update-pull-location


2008/12/11 Colin D Bennett <colin at gibibit.com>

> On Thu, 11 Dec 2008 05:33:27 +0200
> Alexander Belchenko <bialix at ukr.net> wrote:
>
> > Colin D Bennett пишет:
> > > This script pushes a hierarchy of branches from one location to
> > > another.  It works better for me than the 'bzr multi-pull' command
> > > from bzrtools in many situations, because it will push new
> > > branches, while doing a multi-pull from the other end will only
> > > pull branches that already exist on that end.
> ...
> > May I persuade you to improve existing repo-push plugin instead of
> > writing new one from the scratch?
>
> Yes, you may!  Actually, I didn't know about repo-push.  Thanks for
> pointing me toward it.  I just checked it out and it does most of what I
> want, in a much better way than I did it, of course.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.ubuntu.com/archives/bazaar/attachments/20081211/6ffe053f/attachment-0001.htm 


More information about the bazaar mailing list