info-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Branching bug ??? (was Re: Bug is tagging the head of a branc h head


From: Jim.Hyslop
Subject: RE: Branching bug ??? (was Re: Bug is tagging the head of a branc h head???)
Date: Thu, 20 May 2004 10:31:14 -0400

address@hidden wrote:
> "A picture paints a thousand words" (David Gates of Bread)
Only when there is something to paint. Applying a branch tag does not create
anything, so there is nothing to paint.

So, let me try giving you a few more dozen words to pass on to your users.
Eventually, we'll get there ;=)

Maybe there's a basic problem in concepts. We frequently talk about
"creating a branch" when what we _really_ mean is "labelling a point where a
branch might start." The branch is not actually _created_ until you check a
version into that branch. There are countless branch tags in our projects
that have nothing checked into them. If nothing gets checked in under that
tag, then the branch does not exist: all you have done is to reserve a spot
where it might start.

Therefore, applying a branch tag to an existing branch tag, where there is
no actual branch yet, is no different from applying the tag to the trunk.

Maybe this will help:

cvs tag -b branch_a
cvs tag -r branch_a -b branch_b

will result in:
+-----+    +-----+    +-----+
| 1.1 |----| 1.2 |----| 1.3 |---- ...
+-----+    +-----+    +-----+
                         |
                      branch_a
                         |
                      branch_b

branch_a is rooted at 1.3. The second command tells CVS "start branch_b at
the phyiscal revision that exists at the head of branch_a". What revision is
that? That would be 1.3 since no changes have been made on the branch.
Therefore, branch_b is *also* rooted at 1.3. Since both branches are rooted
at the same place, this picture can be rearranged as follows:

+-----+    +-----+    +-----+
| 1.1 |----| 1.2 |----| 1.3 |---- ...
+-----+    +-----+    +-----+
                         |
                      branch_b
                         |
                      branch_a


and also:
                      branch_a
                         |
+-----+    +-----+    +-----+
| 1.1 |----| 1.2 |----| 1.3 |---- ...
+-----+    +-----+    +-----+
                         |
                      branch_b

The three diagrams above are equivalent.

-- 
Jim Hyslop
Senior Software Designer
Leitch Technology International Inc. (http://www.leitch.com)
Columnist, C/C++ Users Journal (http://www.cuj.com/experts)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]