hi all, <br>so there has been talk again about multi-push, multi-pull, repo-push, bzr-mirror<br>and I also know about <strong style="font-weight: normal;">recursive-upgrade</strong>.<br>Yesterday I also wrote essentially a multi-bind plugin which can rebind complicated<br>
directory structures on a (in our case new) central repository.<br><a href="https://code.launchpad.net/~amanica/+junk/bzr-multilocation">https://code.launchpad.net/~amanica/+junk/bzr-multilocation</a><br>(we have about 40 components in our system where each has its own branch,<br>
moving the central server is quite painful. Man I could use nested trees right about now)<br><br>I envisage a more uniform way of going about this.<br>I want to endeavour to write a single plugin which aids in batch processing bzr commands.<br>
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.<br><br>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<br>
(a la qlog, gannotate). I&#39;m thinking of pre-pending a &#39;m&#39; for multi or a &#39;b&#39; for batch.<br><br>3) I would like&nbsp; a simple way for these batch-processing commands to work for different location scenarios:<br>
bzr bbind -b recurse:.&nbsp;&nbsp; (recurses from specified path)<br>bzr bbind -b multi:x,y,z/zz&nbsp;&nbsp; (specify multiple locations)<br>bzr bbind -b repo:/my_repo&nbsp; (does all branches in repo)<br>bzr blog -b multi:sftp://<a href="http://example.com/branch,http://example.com/branch2">example.com/branch,http://example.com/branch2</a> -c -1 -v&nbsp; (this one has a nice ring to it:)<br>
bzr bookmark mybookmark multi:sftp://<a href="http://example.com/branch,x,y">example.com/branch,x,y</a><br>bzr bstatus -b bm:mybookmark --short<br>bzr bmissing -b recurse:. -b exclude:./not_me&nbsp; (recurses from specified path, but exclude specific paths/patterns)<br>
<br>4) examples of extra options to make it very usefull in batch mode<br>
local_dir&gt; bzr checkout -b recurse:sftp://<a href="http://example.com/some_dir">example.com/some_dir</a> --create-directory-structure&nbsp;&nbsp; <br>should recreate teh directory structure found on the server eg.<br>some_dir/x/branch1<br>
some_dir/x/y/branch2<br>should create it locally too;<br>local_dir/x/branch1<br>
local_dir/x/y/branch2<br><br>bzr bbind -b bm:my_list_of_branches bzr+<a href="https://new_central_server.co.za/bzr/dx6180/1-dev">https://new_central_server.co.za/bzr/dx6180/1-dev</a> --relative-to ~ --update-push-location --update-pull-location<br>
<br><br>2008/12/11 Colin D Bennett <span dir="ltr">&lt;<a href="mailto:colin@gibibit.com">colin@gibibit.com</a>&gt;</span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On Thu, 11 Dec 2008 05:33:27 +0200<br>
Alexander Belchenko &lt;<a href="mailto:bialix@ukr.net">bialix@ukr.net</a>&gt; wrote:<br>
<br>
&gt; Colin D Bennett пишет:<br>
&gt; &gt; This script pushes a hierarchy of branches from one location to<br>
&gt; &gt; another. &nbsp;It works better for me than the &#39;bzr multi-pull&#39; command<br>
&gt; &gt; from bzrtools in many situations, because it will push new<br>
&gt; &gt; branches, while doing a multi-pull from the other end will only<br>
&gt; &gt; pull branches that already exist on that end.<br>
...<br>
&gt; May I persuade you to improve existing repo-push plugin instead of<br>
&gt; writing new one from the scratch?<br>
<br>
</div>Yes, you may! &nbsp;Actually, I didn&#39;t know about repo-push. &nbsp;Thanks for<br>
pointing me toward it. &nbsp;I just checked it out and it does most of what I<br>
want, in a much better way than I did it, of course.<br>
</blockquote></div><br>