<!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"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>5分でわかるBazaar — Bazaar v2.2.4 documentation</title> <link rel="stylesheet" href="../_static/default.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '2.2.4', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </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/translations.js"></script> <link rel="shortcut icon" href="../_static/bzr.ico"/> <link rel="top" title="Bazaar v2.2.4 documentation" href="../index.html" /> <link rel="up" title="チュートリアル" href="../tutorials/index.html" /> <link rel="next" title="Bazaar チュートリアル" href="../tutorials/tutorial.html" /> <link rel="prev" title="チュートリアル" href="../tutorials/index.html" /> </head> <body> <div class="related"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../tutorials/tutorial.html" title="Bazaar チュートリアル" accesskey="N">次へ</a></li> <li class="right" > <a href="../tutorials/index.html" title="チュートリアル" accesskey="P">前へ</a> |</li> <li><a href="../index.html">目次 (2.2.4)</a> »</li> <li><a href="../tutorials/index.html" accesskey="U">チュートリアル</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="bazaar"> <h1>5分でわかるBazaar<a class="headerlink" href="#bazaar" title="このヘッドラインへのパーマリンク">¶</a></h1> <div class="section" id="introduction"> <span id="id1"></span><h2>イントロダクション<a class="headerlink" href="#introduction" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>Bazaarは分散型バージョン管理システムで、ソフトウェアプロジェクトの共同作業を楽にしてくれます。</p> <p>これから5分ほどで、ファイルをバージョン管理下に置き、変更をそれらに記録して、作業内容を確認し、公開して作業内容をマージしてもらうためにプロジェクトのtrunkに送る方法などを学びます。</p> <p>詳細な紹介内容を望むのであれば、 <a class="reference internal" href="#id14">さらに学ぶ</a> をご覧ください。</p> </div> <div class="section" id="id2"> <h2>インストール方法<a class="headerlink" href="#id2" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>このガイドではBazaarをインストールする方法を説明しませんが、通常はとても簡単です。 インストール方法の手引きは次の通りです:</p> <ul class="simple"> <li><strong>GNU/Linux:</strong> おそらくBazaarはあなたのGNU/Linuxディストリビューションに含まれています。</li> <li><strong>Windows:</strong> <a class="reference external" href="http://wiki.bazaar.canonical.com/WindowsDownloads">Windowsのためのインストールの手引き</a>.</li> <li><strong>Mac OS X:</strong> <a class="reference external" href="http://wiki.bazaar.canonical.com/MacOSXBundle">Mac OS Xのためのインストールの手引き</a>.</li> </ul> <p>別のプラットフォームとソースコードからインストールする方法に関しては、 <a class="reference external" href="http://wiki.bazaar.canonical.com/Download">ダウンロード</a> と <a class="reference external" href="http://wiki.bazaar.canonical.com/InstallationFaq">インストール方法</a> のページを参照してください。</p> </div> <div class="section" id="id5"> <h2>まずは自己紹介<a class="headerlink" href="#id5" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>作業にとりかかる前に、まずあなたが誰なのかをBazaarに教えてあげましょう。 そうすることで、履歴の中からあなたの作業を正確に識別することができます。</p> <p>次のように入力してください(もちろん、あなたの名前とEメールアドレスで):</p> <div class="highlight-python"><pre>$ bzr whoami "John Doe <john.doe@gmail.com>"</pre> </div> <p>こうするとBazaarは、あなたの名前やEメールアドレスが入った設定ファイルを作成もしくは修正します。</p> <p>名前とEメールアドレスが正しく登録されているか確認しましょう</p> <div class="highlight-python"><pre>$ bzr whoami John Doe <john.doe@gmail.com></pre> </div> </div> <div class="section" id="id6"> <h2>ファイルをバージョン管理する<a class="headerlink" href="#id6" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>Bazaarで扱うディレクトリといくつかのファイルを作りましょう:</p> <div class="highlight-python"><pre>$ mkdir myproject $ cd myproject $ mkdir subdirectory $ touch test1.txt test2.txt test3.txt subdirectory/test4.txt</pre> </div> <p><strong>Windowsユーザーのための注意:</strong> Windows Explorerを使ってディレクトリを作成し、そのディレクトリの中で右クリックをして <tt class="docutils literal"><span class="pre">新規作成</span></tt> を選択し、ファイルを作成します。</p> <p>Bazaarにあなたのプロジェクトディレクトリを初期化させましょう:</p> <div class="highlight-python"><pre>$ bzr init</pre> </div> <p>何も起きていないように見えても心配しないでください。 Bazaarはファイルとリビジョンの履歴を保存する <a class="reference external" href="http://wiki.bazaar.canonical.com/Branch">branch</a> を作りました。</p> <p>次のステップはBazaarに管理して欲しいファイルを教えることです。 <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">add</span></tt> を実行するとすべてのディレクトリとファイルがプロジェクトに再帰的に追加されます:</p> <div class="highlight-python"><pre>$ bzr add added subdirectory added test1.txt added test2.txt added test3.txt added subdirectory/test4.txt</pre> </div> <p>次に、これらをブランチにコミットしてスナップショットをとります。 コミットを行った理由を説明するメッセージを追加します:</p> <div class="highlight-python"><pre>$ bzr commit -m "Initial import"</pre> </div> <p>Bazaarは分散型バージョン管理システムなので、コミットするためにサーバーに接続する必要はありません。 代わりに、Bazaarはブランチとすべてのコミットをあなたが作業しているディレクトリ内部に保存します; <tt class="docutils literal"><span class="pre">.bzr</span></tt> というサブディレクトリをご覧ください。</p> </div> <div class="section" id="id7"> <h2>ファイルを変更する<a class="headerlink" href="#id7" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>ファイルを変更してブランチにその変更をコミットしてみましょう。</p> <p>好きなエディタで <tt class="docutils literal"><span class="pre">test1.txt</span></tt> を編集し、何を行ったのかを確認します:</p> <div class="highlight-python"><pre>$ bzr diff === modified file 'test1.txt' --- test1.txt 2007-10-08 17:56:14 +0000 +++ test1.txt 2007-10-08 17:46:22 +0000 @@ -0,0 +1,1 @@ +test test test</pre> </div> <p>作業をBazaarのブランチにコミットします:</p> <div class="highlight-python"><pre>$ bzr commit -m "Added first line of text" Committed revision 2.</pre> </div> </div> <div class="section" id="id8"> <h2>リビジョンのログを眺める<a class="headerlink" href="#id8" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>ログを閲覧することでブランチの履歴がわかります:</p> <div class="highlight-python"><pre>$ bzr log ------------------------------------------------------------ revno: 2 committer: John Doe <john.doe@gmail.com> branch nick: myproject timestamp: Mon 2007-10-08 17:56:14 +0000 message: Added first line of text ------------------------------------------------------------ revno: 1 committer: John Doe <john.doe@gmail.com> branch nick: myproject timestamp: Mon 2006-10-08 17:46:22 +0000 message: Initial import</pre> </div> </div> <div class="section" id="sftp"> <h2>sftpでブランチを公開する<a class="headerlink" href="#sftp" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>ブランチを公開する方法は複数あります。 SFTPサーバーがすでにあるもしくは容易にセットアップできるのであれば、ブランチをそこで公開できます。</p> <p>そうでなければ、このセクションをとばして、Bazaarのための無料ホスティングサービスである、 <a class="reference external" href="https://launchpad.net/">Launchpad</a> で公開しましょう。</p> <p><tt class="docutils literal"><span class="pre">www.example.com/myproject</span></tt> でブランチを公開することを前提とします:</p> <div class="highlight-python"><pre>$ bzr push --create-prefix sftp://your.name@example.com/~/public_html/myproject 2 revision(s) pushed.</pre> </div> <p>Bazaarはリモートサーバー上で <tt class="docutils literal"><span class="pre">myproject</span></tt> ディレクトリを作りブランチをそこにpushします。</p> <p>これで誰でも次のコマンドを入力すればあなたのブランチをコピーできます:</p> <div class="highlight-python"><pre>$ bzr branch http://www.example.com/myproject</pre> </div> <p><strong>注:</strong> sftpを使うためには、 <tt class="docutils literal"><span class="pre">paramiko</span></tt> と <tt class="docutils literal"><span class="pre">pyCrypto</span></tt> をインストールする必要があります。 詳細は <a class="reference external" href="http://wiki.bazaar.canonical.com/InstallationFaq">http://wiki.bazaar.canonical.com/InstallationFaq</a> を参照してください。</p> </div> <div class="section" id="id9"> <h2>Launchpadでブランチを公開する<a class="headerlink" href="#id9" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>Launchpadはフリーソフトウェアのための開発とホスティングのためのツールがひとまとめになったものです。これをブランチを公開するために利用できます。</p> <p>Launchpadのアカウントを持っていなければ、 <a class="reference external" href="https://help.launchpad.net/CreatingYourLaunchpadAccount">アカウントのサインアップのガイド</a> に従ってアカウントを作り、 <a class="reference external" href="https://launchpad.net/people/+me/+editsshkeys">SSHキーを登録</a> してください。</p> <p>次のコマンドを(<tt class="docutils literal"><span class="pre">john.doe</span></tt> を自分のLaunchpadアカウント名に変更して)実行してください:</p> <div class="highlight-python"><pre>$ bzr push bzr+ssh://john.doe@bazaar.launchpad.net/~john.doe/+junk/myproject</pre> </div> <p><strong>注:</strong> <tt class="docutils literal"><span class="pre">+junk</span></tt> はこのブランチがLaunchpad上の特定のプロジェクトに関連していないことを意味します。</p> <p>これで、誰でも次のコマンドを入力することでブランチのコピーを作ることができます:</p> <div class="highlight-python"><pre>$ bzr branch http://bazaar.launchpad.net/~john.doe/+junk/myproject</pre> </div> <p>ブランチとリビジョンの履歴に関する情報は <a class="reference external" href="https://code.launchpad.net/people/+me/+junk/myproject">https://code.launchpad.net/people/+me/+junk/myproject</a> でも見ることができます。</p> </div> <div class="section" id="id11"> <h2>別のブランチから自分用のコピーを作る<a class="headerlink" href="#id11" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>他人のコードに取り組むために、ブランチのコピーを作ることができます。 実際の世界の例として、BazaarのGTKインターフェイスを見てみましょう:</p> <div class="highlight-python"><pre>$ bzr branch http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk bzr-gtk.john Branched 292 revision(s).</pre> </div> <p>Bazaarはbzr-gtkのtrunkブランチからすべてのファイルをダウンロードしてリビジョンの履歴をそろえ、bzr-gtk.johnというコピーを作ります。</p> <p>これで、ブランチのコピーを手に入れたのでネットの接続のあるなしに関わらず変更をコミットできます。 ブランチはいつでも公開することで共有でき、bzr-gtkチームがあなたの作品を使いたいと思ったときにBazaarは彼らがあなたのブランチから彼らのブランチにマージし直す作業を簡単にしてくれます。</p> </div> <div class="section" id="id12"> <h2>メインのブランチから自分のブランチを更新する<a class="headerlink" href="#id12" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>変更を自分のブランチにコミットする一方で、他の人がコードを親のブランチにコミットしているということもよくあります。</p> <p>自分のブランチを最新に維持するには、親ブランチから自分のブランチへと変更をマージします:</p> <div class="highlight-python"><pre>$ bzr merge Merging from saved parent location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk All changes applied successfully.</pre> </div> <p>何が変更されたのか確認します:</p> <div class="highlight-python"><pre>$ bzr diff</pre> </div> <p>変更に満足したら、それらを自分のブランチにコミットします:</p> <div class="highlight-python"><pre>$ bzr commit -m "Merge from main branch" Committed revision 295.</pre> </div> </div> <div class="section" id="id13"> <h2>作業を親のブランチにマージする<a class="headerlink" href="#id13" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>bzr-gtkの個人ブランチに取り組んだ後で、あなたの変更を上流のプロジェクトに戻したいことがあるかもしれません。 最も簡単な方法はマージディレクティブを使うことです。</p> <p>マージディレクティブ(merge directive)とは、コンピュータに特定のマージを実行させるためのリクエストです。 マージディレクティブは大抵、マージをレビューするためのパッチと、マージを実行するのに必要となるリビジョン、もしくはリビジョンを取得できるブランチを含みます。</p> <p>次のコマンドの <tt class="docutils literal"><span class="pre">mycode.patch</span></tt> を適当な名前に書き換えて、マージのディレクティブを作ります:</p> <div class="highlight-python"><pre>$ bzr send -o mycode.patch Using saved parent location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk</pre> </div> <p>これでbzr-gtkのプロジェクトにマージディレクティブをEメールで送ることが可能になりました。彼らが納得すれば、親ブランチにマージすることができます。</p> </div> <div class="section" id="id14"> <h2>さらに学ぶ<a class="headerlink" href="#id14" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>Bazaarに関する詳細な内容は <a class="reference external" href="../user-guide/index.html">Bazaarのユーザーガイド</a> で調べることができます。</p> <p>コマンドラインでBazaarを学ぶには:</p> <div class="highlight-python"><pre>$ bzr help</pre> </div> <p>Bazaarのコマンドを学ぶには:</p> <div class="highlight-python"><pre>$ bzr help commands</pre> </div> <p>‘’foo’’ トピックもしくはコマンドを学ぶには:</p> <div class="highlight-python"><pre>$ bzr help foo</pre> </div> </div> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h3><a href="../index.html">目次</a></h3> <ul> <li><a class="reference internal" href="#">5分でわかるBazaar</a><ul> <li><a class="reference internal" href="#introduction">イントロダクション</a></li> <li><a class="reference internal" href="#id2">インストール方法</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="#id7">ファイルを変更する</a></li> <li><a class="reference internal" href="#id8">リビジョンのログを眺める</a></li> <li><a class="reference internal" href="#sftp">sftpでブランチを公開する</a></li> <li><a class="reference internal" href="#id9">Launchpadでブランチを公開する</a></li> <li><a class="reference internal" href="#id11">別のブランチから自分用のコピーを作る</a></li> <li><a class="reference internal" href="#id12">メインのブランチから自分のブランチを更新する</a></li> <li><a class="reference internal" href="#id13">作業を親のブランチにマージする</a></li> <li><a class="reference internal" href="#id14">さらに学ぶ</a></li> </ul> </li> </ul> <h4>前のトピックへ</h4> <p class="topless"><a href="../tutorials/index.html" title="前の章へ">チュートリアル</a></p> <h4>次のトピックへ</h4> <p class="topless"><a href="../tutorials/tutorial.html" title="次の章へ">Bazaar チュートリアル</a></p> <h3>このページ</h3> <ul class="this-page-menu"> <li><a href="../_sources/mini-tutorial/index.txt" rel="nofollow">ソースコードを表示</a></li> </ul> <div id="searchbox" style="display: none"> <h3>クイック検索</h3> <form class="search" action="../search.html" method="get"> <input type="text" name="q" size="18" /> <input type="submit" value="検索" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> モジュール、クラス、または関数名を入力してください </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../tutorials/tutorial.html" title="Bazaar チュートリアル" >次へ</a></li> <li class="right" > <a href="../tutorials/index.html" title="チュートリアル" >前へ</a> |</li> <li><a href="../index.html">目次 (2.2.4)</a> »</li> <li><a href="../tutorials/index.html" >チュートリアル</a> »</li> </ul> </div> <div class="footer"> © Copyright 2009, Canonical Ltd. このドキュメントは <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7 で生成しました。 </div> </body> </html>