Hi John,<br><br><div class="gmail_quote">On Fri, Mar 26, 2010 at 1:36 AM, John Szakmeister <span dir="ltr">&lt;<a href="mailto:john@szakmeister.net">john@szakmeister.net</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;">
On Thu, Mar 25, 2010 at 1:19 PM, Eric Berry &lt;<a href="mailto:elberry@gmail.com">elberry@gmail.com</a>&gt; wrote:<br>
[snip]<br>
<div class="im">&gt; I don&#39;t quite understand. To be honest, I haven&#39;t performed a full migration<br>
&gt; with bzr yet either. At least, not one where I&#39;ve had to worry about hooks<br>
&gt; and plugins. Are you referring to migrating a single bzr branch, or a full<br>
&gt; bzr repository, and are you cautioning that the plugins and hooks won&#39;t go<br>
&gt; along with a push?<br>
<br>
</div>There was a long description of the process to move your subversion<br>
repository from one location to another (svn dump, copy your hooks,<br>
copy DB_CONFIG, create the new repo, load it, copy the hooks back,<br>
restore DB_CONFIG), but a short one for Bazaar and Git.  I see several<br>
faults with that.  One is that the procedure for Subversion is what it<br>
is to help make sure you get all your hooks back into place, but the<br>
Bazaar version didn&#39;t account for that.  You could move the repo by<br>
just pushing it somewhere, but that doesn&#39;t take care of the hooks<br>
because they&#39;re plugins, and plugins don&#39;t get transferred.  And,<br>
Bazaar operates only on branches, so to take a whole shared repository<br>
isn&#39;t a matter of a single pull/push.<br>
<br>
Also, the Subversion story is much simpler these days.  FSFS is the<br>
default backend.  So you can simply tar up the repo, and untar it<br>
somewhere else.  Couple that with svnserve (my preferred hosting<br>
technique), and it&#39;s really not so hard to move a Subversion repo. </blockquote><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im"><br>
&gt; From my understanding, a bzr branch, or repository can be migrated using<br>
&gt; simple methods like rsync, or just taring up the entire directory. I&#39;m<br>
&gt; assuming the same could be done with installed plugins and hooks. Is this<br>
&gt; correct?<br>
<br>
</div>That is true.  But that&#39;s not what was outlined in the slides.  The<br>
hooks story gets a little more interesting if it&#39;s installed<br>
system-wide or just for the user hosting the repositories.  A<br>
system-wide install would be more difficult to just tar up the hooks<br>
and plugins.  Either way, those hooks aren&#39;t stored with the repo or<br>
branch, they&#39;re stored in either ~/.bazaar/plugins or have been<br>
installed system-wide in $SITE_PACKAGES/bzrlib/plugins/.</blockquote><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
I think in the end, Subversion is easier than was outlined, and Bazaar<br>
is a little more complicated than outlined.  I personally think it&#39;s a<br>
wash.  Some would say that the hosting story is better for Bazaar, but<br>
as I&#39;m currently trying to do that (and setup appropriate access<br>
permissions and such), I&#39;m inclined to disagree with that as well.<br></blockquote><div><br><div><br>
Thanks for explaining this. It is a good point, and I will update the 
presentation to state that 
the process shown is the simplest method of migrating a single bzr 
branch, or Git clone, and that it doesn&#39;t migrate hooks or server-side 
plugins. I added some extra notes about migrating a bzr 
repository, but it should be more strongly noted. As for taring up the 
SVN repo, I thought this was discouraged, especially when moving to a 
different file system. My understanding is that the svnadmin/dump 
process is the preferred and recommended method of migration. Which 
still makes my point valid. Migrating a SVN repo the recommended way is 
still way more complicated than migrating a Bazaar repo. In my 
experience, the more steps there are to a procedure, the easier it is to
 forget one. :)<br></div> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
OTOH, there are some great features in Bazaar that you can&#39;t match<br>
with Subversion today.  Branching and merging being the biggest.<br>
Subversion does have merge tracking, but you have to tell it whether<br>
you&#39;re re-integrating or not (and we usually forget that at some<br>
point, which means we have to revert and try again).  Bazaar&#39;s Just<br>
Works for most merging operations (the one place Subversion has Bazaar<br>
beat is with cherry-picking revisions, but we do that relatively<br>
little in our environment).  The other nice feature is true rename<br>
tracking.  In Subversion, if you branched and made some fixes, then<br>
tried to re-integrate those on trunk, but the files had been renamed<br>
on trunk... well, you lose.  It patches the old version of the file<br>
(although it may actually raise a tree conflict today... I haven&#39;t<br>
tried this in a while). :-(  Bazaar recognizes that the file was<br>
moved, and correctly patches it.  Bazaar&#39;s ability to have the entire<br>
history of the branch at your fingertips is also very nice.  Coupled<br>
with qlog, it&#39;s extremely powerful.  On the flip-side, for a really<br>
active repository (multiple committers, and fairly frequent changes),<br>
you have to constantly update your branch/working tree in Bazaar<br>
whereas Subversion will silently rebase your changes.  The plus side<br>
for Subversion is that your developer&#39;s aren&#39;t constantly faced with<br>
errors telling them to pull and update.  The down side is that you<br>
can&#39;t checkout revision X and have the exact same working copy that<br>
you did when you made the commit.  Bazaar rigidity here helps to<br>
ensure you can always get back to that exact state.<br>
<br>
Maybe it&#39;s worth talking about that stuff in the presentation?</blockquote><div><br>I do. One thing that I think the presentation is missing is at least one slide on this very subject. I covered merging a little bit when I explained how bzr has made my life easier at work, but I can certainly include some of these other ones. Renames are a true benefit, but unfortunately, you only really gain this benefit when it&#39;s hosted by bzr. Renames in bzr, still come across as a delete and add when committed to a SVN repo (understandably so). But it&#39;s still a great feature to bring up.<br>
<br>The logs are also a nice feature. I&#39;ve often shown-off BazaarExplorer to my co-workers, and the log viewer always raises some Ooohs, and Ahhhs. :)<br><br>Are there any others you can think of that would be worth showing?<br>
 </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">  I<br>
don&#39;t think the advantages/disadvantages are as cut and dry as &quot;Bazaar<br>
is better than Subversion&quot; or &quot;Git is better than Subversion&quot; (despite<br>
Linus&#39;s opinion).  It really depends on how your organization uses<br>
those tools, what the structure is, what&#39;s willing to change about<br>
that structure, what tools are you willing to put into place to help<br>
cope with some of the differences (such as PQM-like entity to help<br>
merge changes to trunk), and whether the kind of data your putting<br>
under VCS is suitable (one project I&#39;ve worked on in the past had a<br>
lot of media and multi gigabyte binary files... that would fail under<br>
most DVCSs today because of the assumption that they can hold the<br>
entire content in memory).<br></blockquote><div><br><br>
I completely agree. Popular tools exist because they help their users. 
If SVN didn&#39;t serve a purpose, it wouldn&#39;t exist, or at least, it 
wouldn&#39;t have survived and become as popular as it has. SVN has served us very well up until this point, and it&#39;s because of some recent developments with a larger and more distributed team that it&#39;s just now starting to &quot;fail&quot;. We are certainly making due with SVN, but moving to a DVCS, would make our lives easier, and it&#39;s my opinion that Bazaar is the right DVCS for our needs. This is primarily due to Bazaar&#39;s flexibility, it would allow us to work the way we want, team to team. Each team can make use of a different work flow, or combination of workflows to fit their needs.<br>
<br>This is something Bazaar does well I think. It&#39;s ability to work the way we want to work is really (in my opinion) what sets it apart from the others.<br><br>Just m2c.<br>Eric<br></div></div><br clear="all"><br>-- <br>
Learn from the past. Live in the present. Plan for the future.<br>Blog: <a href="http://www.townsfolkdesigns.com/blogs/elberry">http://www.townsfolkdesigns.com/blogs/elberry</a><br>jEdit &lt;<a href="http://www.jedit.org">http://www.jedit.org</a>&gt; - Programmer&#39;s Text Editor<br>
Bazaar &lt;<a href="http://bazaar.canonical.com">http://bazaar.canonical.com</a>&gt; - Version Control for Humans<br>