Sophie

Sophie

distrib > Mageia > 7 > aarch64 > by-pkgid > 7e647d9940d31b34c253e6f71c416c4b > files > 3155

bzr-2.7.0-6.mga7.aarch64.rpm


<!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="X-UA-Compatible" content="IE=Edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Using gatekeepers &#8212; Bazaar 2.7.0 documentation</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>
    
    <link rel="shortcut icon" href="../_static/bzr.ico"/>
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Sending changes" href="sending_changes.html" />
    <link rel="prev" title="Organizing branches" href="organizing_branches.html" /> 
  </head><body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="sending_changes.html" title="Sending changes"
             accesskey="N">next</a></li>
        <li class="right" >
          <a href="organizing_branches.html" title="Organizing branches"
             accesskey="P">previous</a> |</li>
<li><a href="http://bazaar.canonical.com/">
    <img src="../_static/bzr icon 16.png" /> Home</a>&nbsp;|&nbsp;</li>
<a href="http://doc.bazaar.canonical.com/en/">Documentation</a>&nbsp;|&nbsp;</li>

        <li class="nav-item nav-item-0"><a href="../index.html">Table of Contents (2.7.0)</a> &#187;</li>

          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Bazaar User Guide</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="using-gatekeepers">
<h1>Using gatekeepers<a class="headerlink" href="#using-gatekeepers" title="Permalink to this headline">¶</a></h1>
<div class="section" id="the-decentralized-with-human-gatekeeper-workflow">
<h2>The decentralized with human gatekeeper workflow<a class="headerlink" href="#the-decentralized-with-human-gatekeeper-workflow" title="Permalink to this headline">¶</a></h2>
<p>In this workflow, one developer (the gatekeeper) has commit rights
to the main branch while other developers have read-only access.
All developers make their changes in task branches.</p>
<img alt="../_images/workflows_gatekeeper.png" src="../_images/workflows_gatekeeper.png" />
<p>When a developer wants their work merged, they ask the gatekeeper
to review their change and merge it if acceptable. If a change fails
review, further development proceeds in the relevant task branch
until it is good to go.</p>
<p>Note that a key aspect of this approach is the inversion of control
that is implied: developers no longer decide when to “commit/push”
changes into the central branch: the code base evolves by gatekeepers
“merging/pulling” changes in a controlled manner. It’s perfectly
acceptable, indeed common, to have multiple central branches with
different gatekeepers, e.g. one branch for the current production
release and another for the next release. In this case, a task branch
holding a bug fix will most likely be advertised to both gatekeepers.</p>
<p>One of the great things about this workflow is that it is hugely
scalable. Large projects can be broken into teams and each
team can have a <em>local master branch</em> managed by a gatekeeper.
Someone can be appointed as the primary gatekeeper to merge
changes from the team master branches into the primary master
branch when team leaders request it.</p>
</div>
<div class="section" id="the-decentralized-with-automatic-gatekeeper-workflow">
<h2>The decentralized with automatic gatekeeper workflow<a class="headerlink" href="#the-decentralized-with-automatic-gatekeeper-workflow" title="Permalink to this headline">¶</a></h2>
<p>To obtain even higher quality, all developers can be required to
submit changes to an automated gatekeeper that only merges and
commits a change if it passes a regression test suite. One
such gatekeeper is a software tool called PQM.</p>
<img alt="../_images/workflows_pqm.png" src="../_images/workflows_pqm.png" />
<p>For further information on PQM, see <a class="reference external" href="https://launchpad.net/pqm">https://launchpad.net/pqm</a>.</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="#">Using gatekeepers</a><ul>
<li><a class="reference internal" href="#the-decentralized-with-human-gatekeeper-workflow">The decentralized with human gatekeeper workflow</a></li>
<li><a class="reference internal" href="#the-decentralized-with-automatic-gatekeeper-workflow">The decentralized with automatic gatekeeper workflow</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="organizing_branches.html"
                        title="previous chapter">Organizing branches</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="sending_changes.html"
                        title="next chapter">Sending changes</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/user-guide/using_gatekeepers.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <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>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="sending_changes.html" title="Sending changes"
             >next</a></li>
        <li class="right" >
          <a href="organizing_branches.html" title="Organizing branches"
             >previous</a> |</li>
<li><a href="http://bazaar.canonical.com/">
    <img src="../_static/bzr icon 16.png" /> Home</a>&nbsp;|&nbsp;</li>
<a href="http://doc.bazaar.canonical.com/en/">Documentation</a>&nbsp;|&nbsp;</li>

        <li class="nav-item nav-item-0"><a href="../index.html">Table of Contents (2.7.0)</a> &#187;</li>

          <li class="nav-item nav-item-1"><a href="index.html" >Bazaar User Guide</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2009-2011 Canonical Ltd.
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.8.4.
    </div>
  </body>
</html>