I am currently happily using bzr with a 1.2Gb branch through judicious use of shared repositories and switching.  Basically, I have one heavy-weight checkout of the 1.2Gb branch in a shared repository, where branches are created with no working trees by default.  Then I switch the heavy-weight checkout between &quot;features&quot;, before committing to the mainline.  The obvious downside is that you can only work on X number of features at the same time (where X is the number of heavy-weight checkouts you have)... though switching this checkout between features is a very rapid operation (~10s on mine roughly).<br>
<br>Basic set up is:<br># Setup the shared bzr repo<br>cd /some/repo/<br>bzr init-repo --no-trees --default .<br><br># Make a clean branch of mainline<br>bzr branch /mainline/bzr/branch mainline<br><br># Make a feature to play with<br>
bzr branch mainline some-new-feature<br><br># Make a checkout to play with<br>bzr co some-new-feature working_1<br>*hack and play....*<br>*bzr commit etc.*<br><br># Make a new feature to play with<br>bzr branch mainline some-other-feature<br>
<br># Switch the heavy workout to the new feature DONT FORGET TO COMMIT FIRST (though bzr won&#39;t lose your changes... it&#39;s polite that way)<br>cd working_1<br>bzr switch ..\some-other-feature<br># Commits will now go to some-other-feature<br>
<br><br>To make this convenient on a day-to-day- basis, I&#39;ve wrapped up common operations (like creating the branch and then binding the heavy checkout to the new feature branch) up in script files.  So to start a new feature, I do &quot;create-feature some-other-feature&quot;, and the scripts know my directory layout to take care of the branching etc.<br>
<br>Anywho... not sure if that is at all relevant to your use case, but it is working quite well here for ~8devs who have only just migrated from SVN... no data has been accidently lost yet either which is a bonus :).  If it is relevant for you, I also have more information about how we mirror our branches onto a shared network repository and other such magics that go to making the setup work well for us.<br>
<br>Philip<br><br><div class="gmail_quote">On Wed, Jul 28, 2010 at 3:29 PM, Chris Hecker <span dir="ltr">&lt;<a href="mailto:checker@d6.com">checker@d6.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Ah, sorry, I thought the whole .bzr directory was only 20mb and was confused!<br>
<br>
Very interested to hear responses!<br><font color="#888888">
<br>
Chris</font><div><div></div><div class="h5"><br>
<br>
<br>
On 2010/07/27 21:01, Michael Hope wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
&#39;bzr revno 4.4&#39; shows 93541 revisions.  The mirror .bzr directory is<br>
549 MB.  The 4.4 branch directory is 20 MB.  The exported size is 559<br>
MB over 63000 files.  It&#39;s reasonably big.<br>
<br>
-- Michael<br>
<br>
On Wed, Jul 28, 2010 at 3:57 PM, Chris Hecker&lt;<a href="mailto:checker@d6.com" target="_blank">checker@d6.com</a>&gt;  wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
It seems like &quot;large repository&quot; means amount of history?  20mb is not very<br>
big at all for the .bzr, I think.  How many revisions are there?<br>
<br>
My repo is 1k revisions, but 55mb, and operations are reasonably fast<br>
(creating a new working copy is a little pokey, 1300 files, but not too bad,<br>
maybe 10 seconds).<br>
<br>
I&#39;m very interested in this topic.  I have binary files in my repro (maya<br>
models and animations, photoshop psds, and audio files), and I&#39;m worried<br>
about it blowing up in my face at some point, but so far it&#39;s been fine and<br>
I&#39;m loving bzr relative to svn.<br>
<br>
Chris<br>
<br>
<br>
On 2010/07/27 19:40, Michael Hope wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Hi there.  I&#39;m working on the gcc-linaro branch which is stored under<br>
bzr and hosted on Launchpad.  This is a fairly big branch as it was<br>
imported from upstream SVN and contains a large amount of history.<br>
<br>
Most of the work is day-to-day changes on topic branches.  I also want<br>
to run a buildbot style program that continually updates and builds<br>
the latest.<br>
<br>
My issue is that the various operations are taking too long.  Could<br>
anyone suggest tricks or a different work flow to speed things up?<br>
<br>
Some of the operations include:<br>
<br>
Creating a mirror branch by doing init-repo, branch lp:gcc-linaro/4.4.<br>
  The finding revisions stage takes about 10 minutes at 1kB/s.  The<br>
download stage is much faster.<br>
<br>
Day-to-day work is done on topic branches.  Creating the branch takes<br>
46 s, 250 MB of RAM, and creates a 20 MB .bzr directory.  Pushing this<br>
branch to LP for merging involves pushing the full 20 MB, but this is<br>
acceptable.<br>
<br>
Doing a bzr pull on the 4.4 mirror directory may more than half an<br>
hour and more than 500 MB of memory.<br>
<br>
Doing a bzr checkout takes over 20 minutes and 800 MB of memory on my<br>
fastest machine.  On my netbook and ARM board this causes significant<br>
swapping.  I&#39;ve yet to complete a checkout on either.<br>
<br>
I&#39;d also like to share the mirror with other local machines to skip<br>
downloading the same 500 MB many times.  Running bzr serve and then<br>
checking out causes 100 % CPU usage for more than 10 minutes on the<br>
host.<br>
<br>
These numbers were with 2.2b4.  2.2 is significantly better than 2.1.<br>
<br>
-- Michael<br>
<br>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Philip Peitsch<br>Mob: 0439 810 260<br>