<!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="ru"> <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" /> </head> <body role="document"> <div class="related" role="navigation" aria-label="related navigation"> <h3>Навигация</h3> <ul> <li><a href="http://bazaar.canonical.com/"> <img src="../_static/bzr icon 16.png" /> Главная</a> | </li> <a href="http://doc.bazaar.canonical.com/ru/">Документация</a> | </li> <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="using-stacked-branches"> <span id="id1"></span><h1>Использование стека веток<a class="headerlink" href="#using-stacked-branches" title="Ссылка на этот заголовок">¶</a></h1> <div class="section" id="id2"> <h2>Что такое ветка в стеке?<a class="headerlink" href="#id2" title="Ссылка на этот заголовок">¶</a></h2> <p>Ветка в стеке - это ветка которая знает как найти ревизии в другой ветке. Ветка в стеке хранит только уникальные ревизии, которые при этом быстрее создавать и они более эффективны по занимаемому месту. По этим показателям стек веток похож на разделяемые репозитории. Конечно стек веток имеет дополнительные преимущества:</p> <ul class="simple"> <li>Новая ветка может быть в абсолютно другом месте по сравнению с веткой на которой она основана как стек.</li> <li>Удаление ветки в стеке на самом деле удаляет ревизии (а не оставляет их в разделяемом репозитории).</li> <li>Стек веток более безопасен чем разделяемые репозитории, т.к. репозиторий на котором основан стек может иметь доступ только для чтения для разработчиков которые фиксируют изменения на ветке в стеке.</li> </ul> <p>Эти преимущества делают стек веток идеальным выбором для различных сценариев, включая экспериментальные ветки и сайты с хостингом кода.</p> </div> <div class="section" id="id3"> <h2>Создание ветки в стеке<a class="headerlink" href="#id3" title="Ссылка на этот заголовок">¶</a></h2> <p>Что бы создать ветку в стеке нужно использовать опцию <code class="docutils literal"><span class="pre">stacked</span></code> для команды <code class="docutils literal"><span class="pre">branch</span></code>. Например:</p> <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">bzr</span> <span class="n">branch</span> <span class="o">--</span><span class="n">stacked</span> <span class="n">source</span><span class="o">-</span><span class="n">url</span> <span class="n">my</span><span class="o">-</span><span class="nb">dir</span> </pre></div> </div> <p>Здесь мы создадим <code class="docutils literal"><span class="pre">my-dir</span></code> как ветку в стеке без локальных ревизий. Если определено открытая ветка связанная с <code class="docutils literal"><span class="pre">source-url</span></code> будет использована как <em>основа стека</em>. Иначе <code class="docutils literal"><span class="pre">source-url</span></code> будет <em>основой стека</em>.</p> </div> <div class="section" id="id4"> <h2>Создание рабочего каталога в стеке<a class="headerlink" href="#id4" title="Ссылка на этот заголовок">¶</a></h2> <p>Поддержка прямого создания рабочего каталога в стеке скоро ожидается. Пока для этого требуется два шага:</p> <ol class="arabic simple"> <li>Создать ветку в стеке, как описано выше.</li> <li>Конвертировать ветку в рабочий каталог используя либо команду <code class="docutils literal"><span class="pre">reconfigure</span></code>, либо команду <code class="docutils literal"><span class="pre">bind</span></code>.</li> </ol> </div> <div class="section" id="id5"> <h2>Публикация ветки в стеке<a class="headerlink" href="#id5" title="Ссылка на этот заголовок">¶</a></h2> <p>Многие изменения в большинстве проектов создаются на основе готовых веток, таких как <em>основная линия разработки</em>, или <em>текущая стабильная</em>. Создание новой ветки в стеке основанной на таких ветках легко сделать с использованием команды <code class="docutils literal"><span class="pre">push</span></code>:</p> <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">bzr</span> <span class="n">push</span> <span class="o">--</span><span class="n">stacked</span><span class="o">-</span><span class="n">on</span> <span class="n">reference</span><span class="o">-</span><span class="n">url</span> <span class="n">my</span><span class="o">-</span><span class="n">url</span> </pre></div> </div> <p>Эта команда создаст новую ветку <code class="docutils literal"><span class="pre">my-url</span></code>, которая будет основана на <code class="docutils literal"><span class="pre">reference-url</span></code> и содержать только ревизии из текущей ветки, которых еще нет на ветке <code class="docutils literal"><span class="pre">reference-url</span></code>.</p> <p>Если локальная ветка была создана как ветка в стеке то мы можем использовать опцию <code class="docutils literal"><span class="pre">--stacked</span></code> для команды <code class="docutils literal"><span class="pre">push</span></code> и тогда ветка на которой будет основан стек будет задана неявно. Например:</p> <div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">bzr</span> <span class="n">branch</span> <span class="o">--</span><span class="n">stacked</span> <span class="n">source</span><span class="o">-</span><span class="n">url</span> <span class="n">my</span><span class="o">-</span><span class="nb">dir</span> <span class="n">cd</span> <span class="n">my</span><span class="o">-</span><span class="nb">dir</span> <span class="p">(</span><span class="n">меняем</span><span class="p">,</span> <span class="n">меняем</span><span class="p">,</span> <span class="n">меняем</span><span class="p">)</span> <span class="n">bzr</span> <span class="n">commit</span> <span class="o">-</span><span class="n">m</span> <span class="s2">"исправление ошибки"</span> <span class="n">bzr</span> <span class="n">push</span> <span class="o">--</span><span class="n">stacked</span> </pre></div> </div> </div> <div class="section" id="id6"> <h2>Ограничения веток в стеке<a class="headerlink" href="#id6" title="Ссылка на этот заголовок">¶</a></h2> <p>Важная вещь которую надо запомнить в отношении веток в стеке - ветка на которой основан стек должна быть доступна практически для всех операций. Конечно это не проблема если обе ветки локальные, или находятся на одном сервере.</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="#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> </ul> </li> </ul> <div role="note" aria-label="source link"> <h3>Эта страница</h3> <ul class="this-page-menu"> <li><a href="../_sources/user-guide/stacked.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><a href="http://bazaar.canonical.com/"> <img src="../_static/bzr icon 16.png" /> Главная</a> | </li> <a href="http://doc.bazaar.canonical.com/ru/">Документация</a> | </li> <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.4.9. </div> </body> </html>