<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja"> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>データ移行 — Bazaar 2.7.0 ドキュメント</title> <link rel="stylesheet" href="../_static/classic.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="../_static/language_data.js"></script> <script type="text/javascript" src="../_static/translations.js"></script> <link rel="shortcut icon" href="../_static/bzr.ico"/> <link rel="search" title="検索" href="../search.html" /> </head><body> <div class="related" role="navigation" aria-label="related navigation"> <h3>ナビゲーション</h3> <ul> <li class="nav-item nav-item-0"><a href="../index.html">目次 (2.7.0)</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <div class="section" id="id1"> <h1>データ移行<a class="headerlink" href="#id1" title="このヘッドラインへのパーマリンク">¶</a></h1> <div class="section" id="id2"> <h2>データ移行の準備<a class="headerlink" href="#id2" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>移行を開始する前に、最初におこなうべきことがあります。</p> <ol class="arabic simple"> <li>完全にバックアップをとってください。</li> <li>古いブランチを消去(purge)する時間をとってください。</li> </ol> <p>完全なバックアップはなにか悪いことがおきたときのセーフティネットとなります。</p> <p>古いブランチの消去は移行対象となるデータを減らすことができます。これをおこなうためのいくつかのコツを <a href="#id7"><span class="problematic" id="id8">`Finding obsolete branches`_</span></a> でご覧ください。</p> </div> <div class="section" id="id3"> <h2>移行に関連するコマンドの紹介<a class="headerlink" href="#id3" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>データ移行時には注意すべき3つの重要なコマンドがあります。</p> <ul class="simple"> <li><strong>check</strong> - リポジトリ、ブランチやツリーのデータ完全性に関するエラーのチェック。</li> <li><strong>reconcile</strong> - データ完全性に関するエラーの修復。</li> <li><strong>upgrade</strong> - 異なるデータフォーマットへの移行。</li> </ul> <p><strong>reconcile</strong> はめったに必要ではありませんが <strong>check</strong> を <strong>upgrade</strong> の前後で行うことは良い習慣です。</p> <p>これらのコマンドの詳細なヘルプは <a class="reference external" href="../user-reference/index.html">Bazaarユーザーリファレンス</a> をごらんください。</p> </div> <div class="section" id="id4"> <h2>あなたのコミュニティとのコミュニケーション<a class="headerlink" href="#id4" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>新しいフォーマットへのスムーズな移行を可能にするためには、以下が必須です:</p> <ol class="arabic simple"> <li>trunkの移行を行う責任者を1人きめること。</li> <li>trunkの移行試験が成功すること。</li> <li>trunkを移行する時間の予定をたてることと、前もってあなたのコミュニティに知らせておくこと。</li> </ol> <p>事前に警告をしておくことによりコミュニティに所属する人々が 移行日より前に Bazaarや必要なpluginを移行するのに十分な余裕を持つことができるでしょう。</p> <p>さらに大きなコミュニティにおいては、移行それ自身に要する時間に配慮しましょう。 試験移行の後でどのくらい移行に時間がかかるのかに関する良い案を持っておくべきです。移行を週末か金曜日に行うことで問題が発生したときにあなた自身が一息つける時間をとることができることは道理にかなっているでしょう。</p> <p>trunkが移行したら、あなたはコミュニティに対して適切にお知らせし、彼らに彼ら自身のローカルブランチの移行説明書を示す必要があります。後ほど説明書の例を示します。</p> </div> <div class="section" id="id5"> <h2>スタンドアロンブランチの移行<a class="headerlink" href="#id5" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>作業手順は以下のとおりです。:</p> <ol class="arabic simple"> <li><strong>bzr check</strong> を起動します。</li> <li>もしエラーが発生したら、<strong>bzr reconcile</strong> を使ってエラーの修復をこころみてください。もしこれが失敗したら問題を解決してあなたのtrunkをクリーンにするために私たちがお手伝いできるようバグの報告ください。もし成功したならクリーンなtrunkなうちにバックアップをとってください。</li> <li><strong>bzr upgrade --format</strong> を実行してください。<strong>format</strong> は 2a またはそれ以降のことです。</li> <li><strong>bzr check</strong> を起動して最終結果が正しいかどうかを確認してください。</li> </ol> </div> <div class="section" id="id6"> <h2>共用リポジトリ中のブランチを移行<a class="headerlink" href="#id6" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>移行は以下の手順で行ってください:</p> <ol class="arabic simple"> <li>共用リポジトリの移行。</li> <li>ブランチの移行。</li> <li>軽量チェックアウトの移行。</li> </ol> <p>スタンドアロンブランチの例のように <strong>check</strong> を移行の前後に行って問題が存在していないか、あるいは問題がひきおこされていないかを確認してください。</p> </div> <div class="section" id="launchpad"> <h2>Launchpad上のブランチを移行<a class="headerlink" href="#launchpad" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>公開ブランチとプライベートブランチを独立させるために、Launchpadでは共用リポジトリではなく、スタックブランチをディスク容量の効率化の中心技術として使用しています。したがってLaunchpadをコードホスティングに使用しているプロジェクトでは新しいフォーマットへの移行は個人や社内でしようしているとはことなります。</p> <p>手順は次のようになります:</p> <ol class="arabic simple"> <li>指名された人がtrunkのコピーを持ち移行作業を実施します。</li> <li>Launchpadにおいては 現在のtrunkを開発の中心(focus)からはずします。(これは <em>必ず</em> 実施してください、そうしないとこの後の手順が期待通りになりません。)</li> <li>移行した trunk をLaunchpadに push します。</li> <li>開発の中心(focus)に設定します。</li> <li>古い trunk に登録しているユーザに対して新しい trunk へ登録するよう依頼します。</li> </ol> <p>つまり、これらの手順の意味は 古い trunk がいぜんとして有効でスタックされたブランチが存在し続けるということです。しかしながら開発の中心は移行後の trunk に切り替わっており、以後のLaunchpadにpushされるあなたのプロジェクトの新しいブランチは(移行後のtrunkに)スタックされます。</p> <p>この時点であなたはあなたのコミュニティに対して 新しいtrunkが有効になったことを知らせ、彼らに彼らのローカルブランチを移行する説明する準備ができました。</p> </div> <div class="section" id="trunk"> <h2>中央の trunk が移行した後のローカルブランチ移行<a class="headerlink" href="#trunk" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>スタンドアロンブランチの移行手順:</p> <ol class="arabic simple"> <li>中央リポジトリの場所から最新のブランチを新しいディレクトリに取得します。</li> <li>既存のブランチの中のあなたが行った修正を新しいブランチへpullあるいはmergeします。</li> </ol> <p>ブランチを共用リポジトリに移行する手順:</p> <ol class="arabic simple"> <li>新しい共用リポジトリを新フォーマット(2aあるいはそれ以降)で作成します。</li> <li>中央リポジトリから最新のブランチを作成した共用リポジトリへ格納します。</li> <li>あなたのローカルブランチで移行したいものを決定します。 (もし決定していなければ、もちろんバックアップした後、 <a href="#id9"><span class="problematic" id="id10">`Finding obsolete branches`_</span></a> をしてそのブランチを消去するのによい時間です。)</li> <li>各ローカルブランチの移行に関して2つ選択肢があります。</li> </ol> <blockquote> <div><ul class="simple"> <li>新しいリポジトリで1つ空のブランチを <strong>init</strong> して古いリポジトリからリビジョンを <strong>pull</strong> する。</li> <li>新リポジトリにおいて、 trunkから新しいブランチに <strong>branch</strong> した後古いリポジトリにおいてあなたが行った変更を <strong>merge</strong> する。</li> </ul> </div></blockquote> <p>前者の方法は(リビジョンの履歴という意味において)古いブランチと同一のブランチを得ることができる一方、parentブランチは古いブランチを指してしまい、新しいtrunkをさしません。もしあなたがこの方法をとった場合、おそらく branch.conf ファイルの parentブランチに関する設定をしなおしたくなるでしょう。</p> <p>それに比較して後者の方法は parentブランチは正確に設定されます。しかし、もしあなたがすべての最新のリビジョンをtrunkからそのブランチにincludeする用意ができていない限り理想的な方法にはなりません。</p> </div> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <h3><a href="../index.html">Table of Contents</a></h3> <ul> <li><a class="reference internal" href="#">データ移行</a><ul> <li><a class="reference internal" href="#id2">データ移行の準備</a></li> <li><a class="reference internal" href="#id3">移行に関連するコマンドの紹介</a></li> <li><a class="reference internal" href="#id4">あなたのコミュニティとのコミュニケーション</a></li> <li><a class="reference internal" href="#id5">スタンドアロンブランチの移行</a></li> <li><a class="reference internal" href="#id6">共用リポジトリ中のブランチを移行</a></li> <li><a class="reference internal" href="#launchpad">Launchpad上のブランチを移行</a></li> <li><a class="reference internal" href="#trunk">中央の trunk が移行した後のローカルブランチ移行</a></li> </ul> </li> </ul> <div role="note" aria-label="source link"> <h3>このページ</h3> <ul class="this-page-menu"> <li><a href="../_sources/upgrade-guide/data_migration.txt" rel="nofollow">ソースコードを表示</a></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3>クイック検索</h3> <div class="searchformwrapper"> <form class="search" action="../search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="検索" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>ナビゲーション</h3> <ul> <li class="nav-item nav-item-0"><a href="../index.html">目次 (2.7.0)</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> © Copyright 2009-2011 Canonical Ltd. このドキュメントは <a href="http://sphinx-doc.org/">Sphinx</a> 1.8.4 で生成しました。 </div> </body> </html>