Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I'm going to take your chart and reorganize it a bit:</p> <pre><code> /-----gamma-----/(3)----------&gt; / / /----beta---/(1)---/(2)--/---beta--------/--\ / / / \ /------------alpha--/------/---\ \ / \ \ ------------trunk--------------------(a)----------------------(b)------------------&gt; </code></pre> <p>First, remove <code>trunk</code>, since you're not using it. Yes, you're merging back into the trunk, but you never take code out of it. Instead, <code>beta</code> comes from <code>alpha</code> and <code>gamma</code> comes from <code>beta</code>. Might as well save yourself all that effort merging back into a code line you never really use:</p> <pre><code> /-----gamma-----/(3)----------&gt; / / /----beta---/(1)---/(2)--/---beta--------/ / / / /------------alpha--/------/ / trunk </code></pre> <p>Now, let's straighten out your chart, so that the main development line is nice and straight:</p> <pre><code>trunk-alpha-------beta-----------------------gamma--------------------------&gt; \ / / \ / \---alpha-/------/ \---beta-------/ </code></pre> <p>And, finally flip over everything...</p> <pre><code> /-alpha-\-----\ /--beta-------\ / \ \ / \ trunk------/--(beta)---\-----\--------/-(gamma)---------\------(gamma)--------&gt; </code></pre> <p>There's your trunk!</p> <p>I know what you're doing. You're not coding on trunk because trunk is suppose to represent your release. In your original diagram, there are two versions on trunk. Point (a) where you merge branch alpha back to trunk, and Point (b) where you merge branch beta back to trunk. This represents your Release alpha and Release beta.</p> <p>However, that's what tags are for! You make a tag on a release, and your tag now represents your release. And, it's better because a tag preserves the history of your file.</p> <p>Let's say you go to your trunk at Point (b) and take a log of a particular file. You see the file at Point (b) and you see another version at Point (a). But, you have no idea how that file was changed between point (a) and point (b). In fact, you don't even know who's release responsible for a particular change.</p> <p>However, if you did a tag off the branch instead of merging your code back to trunk, you'd see the entire history of that file all the back to the very first version of the file. Subversion's log command (if you don't use the <code>--stop-on-copy</code> switch) will take you from the tag down to branch beta and back to trunk.</p> <p>Ah, you say, but how can I see the differences between release alpha and release beta? In my scheme, I can look at the history of the trunk!</p> <p>However, if you need to see all the changes between one release and another, you could easily just do a diff between two tags. And, sine they're tags, it's much easier to find the actual release version instead of trying to figure out which version on trunk represents your which release.</p> <p>So, you do have a trunk, but you just don't call it that.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload