<?xml version="1.0" encoding="utf-8"?>
<!-- name="generator" content="pyblosxom/1.2.1 06/01/2005" -->
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">

<rss version="0.91">
<channel>
<title>ddaa bbloggs   </title>
<link>http://ddaa.net/blog/bzr/repository-branch-tree</link>
<description>Some free bits of software.</description>
<language>en</language>
<item>
    <title>Repositories, branches and trees</title>
    <link>http://ddaa.net/blog/bzr/repository-branch-tree.html</link>
    <description>&lt;p&gt;These are words you are sure to find in the documentation of any version control system. In &lt;a class=&quot;reference&quot; href=&quot;http://www.nongnu.org/cvs/&quot;&gt;CVS&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; or &lt;a class=&quot;reference&quot; href=&quot;http://www.gnu.org/software/gnu-arch/&quot;&gt;GNU Arch&lt;/a&gt; they are very distinct objects. In &lt;a class=&quot;reference&quot; href=&quot;http://git.or.cz/&quot;&gt;git&lt;/a&gt; and &lt;a class=&quot;reference&quot; href=&quot;http://www.selenic.com/mercurial/&quot;&gt;Mercurial&lt;/a&gt;, they are conceptually distinct but are represented by a single object on disk.&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;In &lt;a class=&quot;reference&quot; href=&quot;http://bazaar-vcs.org/&quot;&gt;Bazaar&lt;/a&gt;, you can pick and choose, as separate or as conflated as you wish. This allows it to support configurations familiar to CVS and Subversion users, as well as the convenience of all-in-one trees.&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;In the simplest case, &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;init&lt;/span&gt;&lt;/tt&gt; creates a &lt;em&gt;standalone tree&lt;/em&gt;. A tree that contains a repository and a single branch, like this:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
my-tree
 | .bzr
 |  | repository
 |  | branch
 |  ` checkout
 | hello.c
 ` README
&lt;/pre&gt;
&lt;p&gt;You can also create a &lt;em&gt;shared repository&lt;/em&gt; for multiple branches to use the same storage. This save disk space and data copying. This is done with &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;init-repository&lt;/span&gt;&lt;/tt&gt;. And that looks like this:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
my-repo
 `.bzr
   ` repository
&lt;/pre&gt;
&lt;p&gt;Then you can start creating branches in the repository. Using commands like &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;branch&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;my-tree&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;my-repo/my-branch&lt;/span&gt;&lt;/tt&gt;:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
my-repo
 | .bzr
 |  ` repository
 ` my-branch
    | .bzr
    ` branch
&lt;/pre&gt;
&lt;p&gt;Note how my-branch neither contains a repository nor a working tree &lt;a class=&quot;footnote-reference&quot; href=&quot;#id2&quot; id=&quot;id1&quot; name=&quot;id1&quot;&gt;[1]&lt;/a&gt;. Other branches created in my-repo will use the same common storage.&lt;/p&gt;
&lt;blockquote&gt;
&lt;table class=&quot;docutils footnote&quot; frame=&quot;void&quot; id=&quot;id2&quot; rules=&quot;none&quot;&gt;
&lt;colgroup&gt;&lt;col class=&quot;label&quot; /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr&gt;&lt;td class=&quot;label&quot;&gt;&lt;a class=&quot;fn-backref&quot; href=&quot;#id1&quot; name=&quot;id2&quot;&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;strike&gt; At least in bzr-0.13. In earlier versions, &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;init-repository&lt;/span&gt;&lt;/tt&gt; created by default a repository where the branches had trees. This behaviour was provided by &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;init-repository&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;--no-trees&lt;/span&gt;&lt;/tt&gt;. &lt;/strike&gt; At least up to bzr-0.13. Developers are considering to change the default of &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;init-repository&lt;/span&gt;&lt;/tt&gt; to create a repository where the branches have trees.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;To extract a tree from the repository, use a command like &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;checkout&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;--lightweight&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;my-repo/my-branch&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;my-light&lt;/span&gt;&lt;/tt&gt;. That would give you a so-called &lt;em&gt;lightweight checkout&lt;/em&gt;:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
my-light
 | .bzr
 |  | branch (reference)
 |  ` checkout
 | hello.c
 ` README
&lt;/pre&gt;
&lt;p&gt;The branch in a lightweight checkout is a special &lt;em&gt;branch reference&lt;/em&gt; that contains no actual data, just the URL of the actual branch in the repository.&lt;/p&gt;
&lt;p&gt;Note that, if you are so inclined, you can create a lightweight checkout from standalone tree.&lt;/p&gt;
&lt;p&gt;If you want to keep all your trees handy, and still benefit from the disk space and performance gains of using a repository, you can create the the repository using &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;init-repository&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;--trees&lt;/span&gt;&lt;/tt&gt;. Creating a branch in this repository would yield this result:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
my-repo
 | .bzr
 | ` repository
 ` my-branch
    | .bzr
    |  | branch
    |  ` checkout
    | hello.c
    ` README
&lt;/pre&gt;
&lt;p&gt;Note that you can also achieve this result by running &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;checkout&lt;/span&gt;&lt;/tt&gt; (no further argument) in a branch that does not already have a tree. Conversely, you can remove the tree from a branch using &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;remove-tree&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;So which combinations did we see?&lt;/p&gt;
&lt;blockquote&gt;
&lt;table border=&quot;1&quot; class=&quot;docutils&quot;&gt;
&lt;colgroup&gt;
&lt;col width=&quot;11%&quot; /&gt;
&lt;col width=&quot;17%&quot; /&gt;
&lt;col width=&quot;11%&quot; /&gt;
&lt;col width=&quot;60%&quot; /&gt;
&lt;/colgroup&gt;
&lt;thead valign=&quot;bottom&quot;&gt;
&lt;tr&gt;&lt;th class=&quot;head&quot;&gt;repo&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;branch&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;tree&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;&amp;nbsp;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr&gt;&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;standalone tree&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;shared repository&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;repository branch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;lightweight checkout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;repository checkout&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;Are other combinations meaningful?&lt;/p&gt;
&lt;blockquote&gt;
&lt;table border=&quot;1&quot; class=&quot;docutils&quot;&gt;
&lt;colgroup&gt;
&lt;col width=&quot;11%&quot; /&gt;
&lt;col width=&quot;17%&quot; /&gt;
&lt;col width=&quot;11%&quot; /&gt;
&lt;col width=&quot;60%&quot; /&gt;
&lt;/colgroup&gt;
&lt;thead valign=&quot;bottom&quot;&gt;
&lt;tr&gt;&lt;th class=&quot;head&quot;&gt;repo&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;branch&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;tree&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;&amp;nbsp;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr&gt;&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;standalone branch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;pure branch reference&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;???&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Standalone branches&lt;/em&gt; are self-contained branches without a tree. They are created by &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;push&lt;/span&gt;&lt;/tt&gt; when the push destination is on a remote URL (like sftp, ftp, http). The &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;push&lt;/span&gt;&lt;/tt&gt; command does not update working trees at remote URLs to improve performance and to prevent the occurence of merge conflicts. So it may as well not create a tree in the first place..&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pure branch references&lt;/em&gt; are exotic, but they are actually useful. &lt;a class=&quot;reference&quot; href=&quot;https://launchpad.net/&quot;&gt;Launchpad&lt;/a&gt; uses them to implement a &lt;a class=&quot;reference&quot; href=&quot;http://blogs.gnome.org/view/jamesh/2006/10/10/0&quot;&gt;redirection&lt;/a&gt; mechanism.&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;The last combination is a repository, without a branch, with a tree. I do not think it would be really useful, but I can imagine how it would work. That would be a lightweight checkout at the root of a shared repository.&lt;/p&gt;</description>
  </item>
	    <item>
      <title>Repositories, branches and trees</title>
      <link>http://ddaa.net/blog/bzr/repository-branch-tree/bzr/repository-branch-tree</link>
      <description>&lt;p&gt;These are words you are sure to find in the documentation of any version control system. In &lt;a class=&quot;reference&quot; href=&quot;http://www.nongnu.org/cvs/&quot;&gt;CVS&lt;/a&gt;, &lt;a class=&quot;reference&quot; href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; or &lt;a class=&quot;reference&quot; href=&quot;http://www.gnu.org/software/gnu-arch/&quot;&gt;GNU Arch&lt;/a&gt; they are very distinct objects. In &lt;a class=&quot;reference&quot; href=&quot;http://git.or.cz/&quot;&gt;git&lt;/a&gt; and &lt;a class=&quot;reference&quot; href=&quot;http://www.selenic.com/mercurial/&quot;&gt;Mercurial&lt;/a&gt;, they are conceptually distinct but are represented by a single object on disk.&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;In &lt;a class=&quot;reference&quot; href=&quot;http://bazaar-vcs.org/&quot;&gt;Bazaar&lt;/a&gt;, you can pick and choose, as separate or as conflated as you wish. This allows it to support configurations familiar to CVS and Subversion users, as well as the convenience of all-in-one trees.&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;In the simplest case, &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;init&lt;/span&gt;&lt;/tt&gt; creates a &lt;em&gt;standalone tree&lt;/em&gt;. A tree that contains a repository and a single branch, like this:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
my-tree
 | .bzr
 |  | repository
 |  | branch
 |  ` checkout
 | hello.c
 ` README
&lt;/pre&gt;
&lt;p&gt;You can also create a &lt;em&gt;shared repository&lt;/em&gt; for multiple branches to use the same storage. This save disk space and data copying. This is done with &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;init-repository&lt;/span&gt;&lt;/tt&gt;. And that looks like this:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
my-repo
 `.bzr
   ` repository
&lt;/pre&gt;
&lt;p&gt;Then you can start creating branches in the repository. Using commands like &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;branch&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;my-tree&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;my-repo/my-branch&lt;/span&gt;&lt;/tt&gt;:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
my-repo
 | .bzr
 |  ` repository
 ` my-branch
    | .bzr
    ` branch
&lt;/pre&gt;
&lt;p&gt;Note how my-branch neither contains a repository nor a working tree &lt;a class=&quot;footnote-reference&quot; href=&quot;#id2&quot; id=&quot;id1&quot; name=&quot;id1&quot;&gt;[1]&lt;/a&gt;. Other branches created in my-repo will use the same common storage.&lt;/p&gt;
&lt;blockquote&gt;
&lt;table class=&quot;docutils footnote&quot; frame=&quot;void&quot; id=&quot;id2&quot; rules=&quot;none&quot;&gt;
&lt;colgroup&gt;&lt;col class=&quot;label&quot; /&gt;&lt;col /&gt;&lt;/colgroup&gt;
&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr&gt;&lt;td class=&quot;label&quot;&gt;&lt;a class=&quot;fn-backref&quot; href=&quot;#id1&quot; name=&quot;id2&quot;&gt;[1]&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;strike&gt; At least in bzr-0.13. In earlier versions, &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;init-repository&lt;/span&gt;&lt;/tt&gt; created by default a repository where the branches had trees. This behaviour was provided by &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;init-repository&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;--no-trees&lt;/span&gt;&lt;/tt&gt;. &lt;/strike&gt; At least up to bzr-0.13. Developers are considering to change the default of &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;init-repository&lt;/span&gt;&lt;/tt&gt; to create a repository where the branches have trees.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;To extract a tree from the repository, use a command like &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;checkout&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;--lightweight&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;my-repo/my-branch&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;my-light&lt;/span&gt;&lt;/tt&gt;. That would give you a so-called &lt;em&gt;lightweight checkout&lt;/em&gt;:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
my-light
 | .bzr
 |  | branch (reference)
 |  ` checkout
 | hello.c
 ` README
&lt;/pre&gt;
&lt;p&gt;The branch in a lightweight checkout is a special &lt;em&gt;branch reference&lt;/em&gt; that contains no actual data, just the URL of the actual branch in the repository.&lt;/p&gt;
&lt;p&gt;Note that, if you are so inclined, you can create a lightweight checkout from standalone tree.&lt;/p&gt;
&lt;p&gt;If you want to keep all your trees handy, and still benefit from the disk space and performance gains of using a repository, you can create the the repository using &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;init-repository&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;--trees&lt;/span&gt;&lt;/tt&gt;. Creating a branch in this repository would yield this result:&lt;/p&gt;
&lt;pre class=&quot;literal-block&quot;&gt;
my-repo
 | .bzr
 | ` repository
 ` my-branch
    | .bzr
    |  | branch
    |  ` checkout
    | hello.c
    ` README
&lt;/pre&gt;
&lt;p&gt;Note that you can also achieve this result by running &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;checkout&lt;/span&gt;&lt;/tt&gt; (no further argument) in a branch that does not already have a tree. Conversely, you can remove the tree from a branch using &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;remove-tree&lt;/span&gt;&lt;/tt&gt;.&lt;/p&gt;
&lt;p&gt;So which combinations did we see?&lt;/p&gt;
&lt;blockquote&gt;
&lt;table border=&quot;1&quot; class=&quot;docutils&quot;&gt;
&lt;colgroup&gt;
&lt;col width=&quot;11%&quot; /&gt;
&lt;col width=&quot;17%&quot; /&gt;
&lt;col width=&quot;11%&quot; /&gt;
&lt;col width=&quot;60%&quot; /&gt;
&lt;/colgroup&gt;
&lt;thead valign=&quot;bottom&quot;&gt;
&lt;tr&gt;&lt;th class=&quot;head&quot;&gt;repo&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;branch&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;tree&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;&amp;nbsp;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr&gt;&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;standalone tree&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;shared repository&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;repository branch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;lightweight checkout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;repository checkout&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;Are other combinations meaningful?&lt;/p&gt;
&lt;blockquote&gt;
&lt;table border=&quot;1&quot; class=&quot;docutils&quot;&gt;
&lt;colgroup&gt;
&lt;col width=&quot;11%&quot; /&gt;
&lt;col width=&quot;17%&quot; /&gt;
&lt;col width=&quot;11%&quot; /&gt;
&lt;col width=&quot;60%&quot; /&gt;
&lt;/colgroup&gt;
&lt;thead valign=&quot;bottom&quot;&gt;
&lt;tr&gt;&lt;th class=&quot;head&quot;&gt;repo&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;branch&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;tree&lt;/th&gt;
&lt;th class=&quot;head&quot;&gt;&amp;nbsp;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody valign=&quot;top&quot;&gt;
&lt;tr&gt;&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;standalone branch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;pure branch reference&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;???&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;Standalone branches&lt;/em&gt; are self-contained branches without a tree. They are created by &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;push&lt;/span&gt;&lt;/tt&gt; when the push destination is on a remote URL (like sftp, ftp, http). The &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;push&lt;/span&gt;&lt;/tt&gt; command does not update working trees at remote URLs to improve performance and to prevent the occurence of merge conflicts. So it may as well not create a tree in the first place..&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pure branch references&lt;/em&gt; are exotic, but they are actually useful. &lt;a class=&quot;reference&quot; href=&quot;https://launchpad.net/&quot;&gt;Launchpad&lt;/a&gt; uses them to implement a &lt;a class=&quot;reference&quot; href=&quot;http://blogs.gnome.org/view/jamesh/2006/10/10/0&quot;&gt;redirection&lt;/a&gt; mechanism.&lt;/p&gt;
&lt;blockquote&gt;
&lt;/blockquote&gt;
&lt;p&gt;The last combination is a repository, without a branch, with a tree. I do not think it would be really useful, but I can imagine how it would work. That would be a lightweight checkout at the root of a shared repository.&lt;/p&gt;</description>
      <category domain="http://www.sauria.com">bzr</category>
      <dc:date>2006-12-10T15:42:09Z</dc:date>
    </item>
   </channel>
</rss>