<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">The initial migration is fairly
      straightforward; bzr fast-export | git fast-import works very
      close to perfectly. I have to do a bit of tweaking to fix one tiny
      problem and to preserve Bazaar's bug ID metadata in the git commit
      messages, but that's not difficult. The more difficult part is
      keeping bzr in sync with git after the migration, but that should
      be possible with a custom script, most of which I have already
      written.<br>
      <br>
      Mark<br>
      <br>
      <br>
      On 2013-10-21 12:30 PM, Randall S. Becker wrote:<br>
    </div>
    <blockquote cite="mid:00ab01cece7a$e4026fe0$ac074fa0$@com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator" content="Microsoft Word 12 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.moz-smiley-s1
        {mso-style-name:moz-smiley-s1;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Hi
            Mark,<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">If
            we have a mirror from Bazaar to CVS, we should be able to
            migrate to git and preserve history quite cleanly. I have
            used the cvs2git conversion successfully. It is
            non-destructive and should allow the procedure to be tested
            and verified prior to making the call to cut over. I am a
            big fan of git, and have a moderate amount of experience
            navigating its subtleties, so if you wish to contact me for
            assistance, don’t hesitate.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Regards,<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Randall<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #B5C4DF
            1.0pt;padding:3.0pt 0cm 0cm 0cm">
            <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext"
                  lang="EN-US">From:</span></b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext"
                lang="EN-US"> <a class="moz-txt-link-abbreviated" href="mailto:developers-owner@bugzilla.org">developers-owner@bugzilla.org</a>
                [<a class="moz-txt-link-freetext" href="mailto:developers-owner@bugzilla.org">mailto:developers-owner@bugzilla.org</a>] <b>On Behalf Of
                </b>Mark Côté<br>
                <b>Sent:</b> October-21-13 12:20 PM<br>
                <b>To:</b> <a class="moz-txt-link-abbreviated" href="mailto:developers@bugzilla.org">developers@bugzilla.org</a><br>
                <b>Subject:</b> Moving Bugzilla to git?<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div>
          <pre>Hi all, I'm the manager of Mozilla's Bugzilla team. We've talked about<o:p></o:p></pre>
          <pre>this idea before, but I thought I would flesh it out and ask for feedback.<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>I think we should move the Bugzilla code off of the Bazaar system hosted<o:p></o:p></pre>
          <pre>by Mozilla and onto git, and maybe even GitHub. There are a few reasons<o:p></o:p></pre>
          <pre>for this:<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>* git is pretty much the de facto standard for VCSs these days. This<o:p></o:p></pre>
          <pre>means many people are familiar with it and like its flexibility (I<o:p></o:p></pre>
          <pre>certainly do).<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>* On the other side, Bazaar is almost dead. There are maybe 2-3 commits<o:p></o:p></pre>
          <pre>to trunk every month.<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>* GitHub is extremely popular, and for good reason, since it's a very<o:p></o:p></pre>
          <pre>powerful system. Exposure via GitHub could mean increased contributions<o:p></o:p></pre>
          <pre>(whether we can keep up with them or not is, of course, another question. <o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>* Mozilla would very much like to retire Tinderbox, since Bugzilla is<o:p></o:p></pre>
          <pre>the only system still using it. Moving to GitHub means we could use<o:p></o:p></pre>
          <pre>travis-ci, which is really nice (we use it for other projects on my team).<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>* Mozilla would also very much like to retire the Bazaar and CVS servers,<o:p></o:p></pre>
          <pre>both of which are used solely by Bugzilla.<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>Doing a one-time migration is quite easy using fast-import/fast-export.<o:p></o:p></pre>
          <pre>I've verified that it works, with one small error that should be simple<o:p></o:p></pre>
          <pre>to fix (a single file not deleted in the git version).<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>However, even with some advance warning, I don't think we can convert<o:p></o:p></pre>
          <pre>and then abandon Bazaar immediately due to Bugzilla's suggested upgrade<o:p></o:p></pre>
          <pre>path, which is to install a package and then pull updates directly from<o:p></o:p></pre>
          <pre>the Bazaar repository. If we had to do a security release, it doesn't<o:p></o:p></pre>
          <pre>seem right to require users to switch VCSs to get that fix. That said, I<o:p></o:p></pre>
          <pre>don't think we need to maintain Bazaar indefinitely, just for some grace<o:p></o:p></pre>
          <pre>period. I suggest 9 months, which would put that sometime mid-2014. I<o:p></o:p></pre>
          <pre>would, however, like to shut down CVS when we migrate to git,<o:p></o:p></pre>
          <pre>so that we don't have to maintain three VCSs at the same time.<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>I haven't found a suitable solution to automatically mirror changes from<o:p></o:p></pre>
          <pre>git to Bazaar; there is one project[1] that at first glance appeared<o:p></o:p></pre>
          <pre>suitable, but after running into problems, I had a discussion with the<o:p></o:p></pre>
          <pre>package's author, who stated that there difficult bugs that would<o:p></o:p></pre>
          <pre>prevent it from working the way we would need it to.<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>Luckily Bugzilla has already gone through this before, from CVS to<o:p></o:p></pre>
          <pre>Bazaar, and we have a script[2] that steps through Bazaar commits and<o:p></o:p></pre>
          <pre>applies them to a CVS repo. I've been modifying that script to do a<o:p></o:p></pre>
          <pre>similar git-to-bzr translation, and I'm confident I can get it working.<o:p></o:p></pre>
          <pre>The mirroring would be in a single direction, that is, from git to<o:p></o:p></pre>
          <pre>Bazaar; after the migration, Bazaar would be read only to everyone<o:p></o:p></pre>
          <pre>except the mirroring script.<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>We would still need migration instructions, which I believe we can do<o:p></o:p></pre>
          <pre>using the old cvs-to-bzr instructions[3] as a base.<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>As for location of the repository, we could have Mozilla host the<o:p></o:p></pre>
          <pre>official git repository and set up two-way mirroring to GitHub.<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>How does this sound to everyone? Any strong objections? I and the rest<o:p></o:p></pre>
          <pre>of the BMO team are willing to do most of the work.<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>Mark<o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre><o:p> </o:p></pre>
          <pre>[1] <a moz-do-not-send="true" href="https://launchpad.net/bzr-git">https://launchpad.net/bzr-git</a><o:p></o:p></pre>
          <pre>[2] <a moz-do-not-send="true" href="http://bzr.mozilla.org/bzr-plugins/bzr-to-cvs/view/head:/bzr-to-cvs.pl">http://bzr.mozilla.org/bzr-plugins/bzr-to-cvs/view/head:/bzr-to-cvs.pl</a><o:p></o:p></pre>
          <pre>[3] <a moz-do-not-send="true" href="https://wiki.mozilla.org/Bugzilla:Moving_From_CVS_To_Bazaar">https://wiki.mozilla.org/Bugzilla:Moving_From_CVS_To_Bazaar</a><o:p></o:p></pre>
          <pre><o:p> </o:p></pre>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>