<!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="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"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '2.7.0', 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="search" title="検索" href="../search.html" /> <link rel="top" title="Bazaar 2.7.0 ドキュメント" href="../index.html" /> <link rel="up" title="Bazaarユーザーガイド" href="index.html" /> <link rel="next" title="Bazaarをインストールする" href="installing_bazaar.html" /> <link rel="prev" title="コアの概念" href="core_concepts.html" /> </head> <body role="document"> <div class="related" role="navigation" aria-label="related navigation"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="installing_bazaar.html" title="Bazaarをインストールする" accesskey="N">次へ</a></li> <li class="right" > <a href="core_concepts.html" title="コアの概念" accesskey="P">前へ</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">目次 (2.7.0)</a> »</li> <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Bazaarユーザーガイド</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="bazaar"> <h2>Bazaarはただのツール<a class="headerlink" href="#bazaar" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>Bazaarは多くの異なる共同作業の方法を支援します。 このことはあるワークフローで始めて状況が変われば別のワークフローを採用できることを意味します。 “唯一の正しい方法”は存在しませんし今後も現れることはりません。 このセクションではBazaarによってサポートされる人気のあるいくつかのワークフローの手短な概要を提供します。</p> <p>これらのワークフローはBazaarの使い方の <em>一部</em> であることを念頭にお願いします。 ここに記載されていないワークフローを利用したいのであれば、下記に記載されているアイディアを足場にします。</p> </div> <div class="section" id="id2"> <h2>ソロ<a class="headerlink" href="#id2" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>ソフトウェアを開発する、ドキュメントを編集するもしくは設定ファイルを変更するのであれ、簡単に使えるVCSは手助けになります。 投稿者が1人であるプロジェクトを複数管理するために単独のユーザーはこのワークフローを効率的に利用できます。</p> <img alt="../_images/workflows_single.png" src="../_images/workflows_single.png" /> <p>まったくバージョン管理を使わない場合と比べたこのワークフローの利点は次のとおりです:</p> <blockquote> <div><ul class="simple"> <li>古いバージョンのバックアップ</li> <li>前の状態へのロールバック</li> <li>履歴の追跡</li> </ul> </div></blockquote> <p>このワークフローに適切なBazaarの主要な機能は管理作業が少ない(サーバーのセットアップは不要)ことと簡単に利用できることです。</p> </div> <div class="section" id="id3"> <h2>パートナー<a class="headerlink" href="#id3" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>時に2人で変更を共有して共同作業をする必要があります。 これは一般的に <em>ソロ</em> のワークフロー (上記を参照) もしくはチーム指向のワークフロー(下記を参照)として始まります。 ある時点で、2人目の人が最初の人が行った内容(履歴も含む)を含むブランチを作ります。 適切なときにマージして変更内容を交換することで並行して作業できます。</p> <img alt="../_images/workflows_peer.png" src="../_images/workflows_peer.png" /> <p><em>ソロ</em> を上回る利点は次のとおりです:</p> <blockquote> <div><ul class="simple"> <li>変更の共有が簡単</li> <li>それぞれのテキストファイルのそれぞれの行は変更した人、時間と理由を含む特定の変更と結びつけられています。</li> </ul> </div></blockquote> <p>このワークフローを採用する場合、BazaarはCVSとSubversionに対して 次のような利点があります:</p> <blockquote> <div><ul class="simple"> <li>サーバーのセットアップが不要</li> <li>インテリジェントなマージ機能により複数回のマージ作業が苦痛では なくなります。</li> </ul> </div></blockquote> </div> <div class="section" id="id4"> <h2>集中型<a class="headerlink" href="#id4" title="このヘッドラインへのパーマリンク">¶</a></h2> <p><em>lock-step</em> としても知られますが、これはCVSとSubversionによって推奨/強制されるワークフローと本質的に同じです。 すべての開発者が同じブランチに取り組みます。 最新の内容をチェックアウトするために <code class="docutils literal"><span class="pre">bzr</span> <span class="pre">update</span></code> を実行し、変更内容を中心位置にコミットするために <code class="docutils literal"><span class="pre">bzr</span> <span class="pre">commit</span></code> を実行します。</p> <img alt="../_images/workflows_centralized.png" src="../_images/workflows_centralized.png" /> <p>このワークフローを導入するのであればSubversionとCVSも簡単なのでよい選択肢です。 Bazaarはこのワークフローも直接サポートしていて、CVSとSubversionを上回る利点をいくつかもちます:</p> <blockquote> <div><ul class="simple"> <li>よりよいブランチとマージ</li> <li>よりよいリネームのサポート</li> </ul> </div></blockquote> </div> <div class="section" id="id5"> <h2>ローカルなコミットで集中型<a class="headerlink" href="#id5" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>このワークフローは、開発者が <code class="docutils literal"><span class="pre">commit</span> <span class="pre">--local</span></code> もしくはチェックアウトをunbindして一連の変更を行うこと以外は、 <em>集中型</em> モデルと基本的に同じです。 こういった一連の変更が完了するとき、開発者は作業内容を共用のメインラインにコミットします。</p> <img alt="../_images/workflows_localcommit.png" src="../_images/workflows_localcommit.png" /> <p><em>集中型</em> を越える利点:</p> <blockquote> <div><ul class="simple"> <li>旅行の間にネットに接続していないなどのオフラインで作業できます</li> <li>誰かの作業を妨げる良くないコミットをする機会が少なくなります</li> </ul> </div></blockquote> <p>SubversionとCVSはこのモデルをサポートしません。 他の分散型VCSツールはこれをサポートしますが、Bazaarよりも直接的ではありません。</p> </div> <div class="section" id="id6"> <h2>共用のメインラインで分散型<a class="headerlink" href="#id6" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>このワークフローにおいて、それぞれの開発者は独自のブランチを持ち、加えてメインブランチにコミットする権限があります。 開発者は個人のブランチに取り組み、準備ができたらそれをメインラインにマージします。</p> <img alt="../_images/workflows_shared.png" src="../_images/workflows_shared.png" /> <p><em>ローカルコミットつきの集中型</em> を越える利点は次のとおりです:</p> <blockquote> <div><ul class="simple"> <li>作業内容の編成が簡単になる - それぞれのブランチで個別の変更を開発できます。</li> <li>開発者は共同作業に取り組むときに別の人の個人ブランチをマージできます。</li> </ul> </div></blockquote> <p>SubversionとCVSはこのモデルをサポートしません。他の分散型VCSツールはサポートします。 Bazaarの多くの機能は、簡単な利用、共用レポジトリ、統合されたマージ機能とリッチなメタデータ(ディレクトリのリネームの追跡を含む)を含めてこのワークフローに有効です。</p> </div> <div class="section" id="id7"> <h2>人間のゲートキーパーで分散型<a class="headerlink" href="#id7" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>このワークフローにおいて、それぞれの開発者は独自のブランチを持ち、それに加えてメインのブランチに対してリードオンリーのアクセス権限を持ちます。 1人の開発者(ゲートキーパー)はメインのブランチにコミットする権限を持ちます。 1人の開発者が彼らの作業をマージしたい場合、ゲートキーパーにマージしてくれるように頼みます。 ゲートキーパーはコードのレビューを行い、必須の基準を満たすのであれば作業内容をメインブランチにマージします。</p> <img alt="../_images/workflows_gatekeeper.png" src="../_images/workflows_gatekeeper.png" /> <p><em>共用のメインラインによる分散型</em> に対する利点は次のとおりです:</p> <blockquote> <div><ul class="simple"> <li>常にコードはメインラインに入る前にレビューされます。</li> <li>変更をメインラインに組み込むときに厳格なコントロールができます</li> </ul> </div></blockquote> <p>Bundle Buggyと呼ばれるBazaarのコンパニオンツールはどんな変更がレビュー待ちになっているのか、その変更のステータスとレビューアのコメントを追跡するのにとても便利です。</p> </div> <div class="section" id="id8"> <h2>自動的なゲートキーパーで分散型<a class="headerlink" href="#id8" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>このワークフローにおいて、それぞれの開発者は独自のブランチを持つのに加えて、メインストリームにリードオンリーのアクセス権限を持ちます。 ソフトウエアのゲートキーパーはメインのブランチにコミットする権限を持ちます。 開発者が作業内容をマージしたいとき、開発者は別の人にレビューを頼みます。 レビューに合格したら、チームの方針によって、オリジナルの著者もしくは レビューワがゲートキーパーソフトウェアにマージするように頼み、 ゲートキーパーソフトウェアはマージし、コンパイルし、テストスィートを実行します。コードがパスする場合のみ、メインラインにマージされます。</p> <p>注: 代替として、レビューのステップをスキップして著者は変更を自動化されたゲートキーパーに投稿できます。 (これはコードのレビューを別のステップとしてではなくジャストインタイムのレビューを効果的に推進するペアプログラミングといった習慣を利用しているときにとりわけ適切です。)</p> <img alt="../_images/workflows_pqm.png" src="../_images/workflows_pqm.png" /> <p><em>人間のゲートキーパーによる分散型</em> に対する利点は次のとおりです:</p> <blockquote> <div><ul class="simple"> <li>コードはメインラインに入る前に常にテストされます (メインラインの完全性が高まります)</li> <li>チームの規模の成長に対応できます</li> </ul> </div></blockquote> <p>BazaarのコンパニオンツールであるPatch Queue Manager (PQM) は自動化ゲートキーパーの機能を提供します。</p> </div> <div class="section" id="id9"> <h2>ワークフローを実施する<a class="headerlink" href="#id9" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>上記のそれぞれのワークフローを実施する方法を詳しく知りたいのであれば、このマニュアルの3章から6章までを参照してください。最初に、2章で、インストール方法、一般的な使い方の手引きと設定方法に関するティップスが説明されています。</p> </div> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <h3><a href="../index.html">目次</a></h3> <ul> <li><a class="reference internal" href="#">ワークフロー</a><ul> <li><a class="reference internal" href="#bazaar">Bazaarはただのツール</a></li> <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="#id7">人間のゲートキーパーで分散型</a></li> <li><a class="reference internal" href="#id8">自動的なゲートキーパーで分散型</a></li> <li><a class="reference internal" href="#id9">ワークフローを実施する</a></li> </ul> </li> </ul> <h4>前のトピックへ</h4> <p class="topless"><a href="core_concepts.html" title="前の章へ">コアの概念</a></p> <h4>次のトピックへ</h4> <p class="topless"><a href="installing_bazaar.html" title="次の章へ">Bazaarをインストールする</a></p> <div role="note" aria-label="source link"> <h3>このページ</h3> <ul class="this-page-menu"> <li><a href="../_sources/user-guide/bazaar_workflows.txt" rel="nofollow">ソースコードを表示</a></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3>クイック検索</h3> <form class="search" action="../search.html" method="get"> <div><input type="text" name="q" /></div> <div><input type="submit" value="検索" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </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="right" style="margin-right: 10px"> <a href="installing_bazaar.html" title="Bazaarをインストールする" >次へ</a></li> <li class="right" > <a href="core_concepts.html" title="コアの概念" >前へ</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">目次 (2.7.0)</a> »</li> <li class="nav-item nav-item-1"><a href="index.html" >Bazaarユーザーガイド</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> © Copyright 2009-2011 Canonical Ltd. このドキュメントは <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.9 で生成しました。 </div> </body> </html>