[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: How to determine what tag a branch was based on?
From: |
Matthew Doar |
Subject: |
RE: How to determine what tag a branch was based on? |
Date: |
03 Feb 2004 12:41:35 -0800 |
cvs history -T works nicely on later versions to show when the tag was
made.,
~Matt
On Tue, 2004-02-03 at 12:15, Jim.Hyslop wrote:
> Dickson, Craig wrote:
> > Here is the scenario:
> > Sometime in the past I created a Branch based on a tag that
> > existed on the files on my main branch. Now I need to go back
> > and find out exactly which tag was used as the base of the branch.
> > Is there a way to determine this conclusively? Our problem is
> > that there has been many tags applies since the branch was
> > created so the "base" files now have multiple tags on them.
> Step 1) Implement a new rule, effective immediately: all branch tag names
> must clearly indicate the non-branch tag from which they are created. One
> easy way to do this is to adopt a convention that branch tags use the
> non-branch tag name, with a "-bt" suffix, e.g.:
>
> cvs tag whatever
> cvs tag -rwhatever -b whatever-bt
>
> Step 2: Prepare for a long session. It can be done, but I don't think it
> will be easy.
> 1) Issue the command "cvs status -v>taglist.txt"
> 2) Open the file in your favourite text editor
> Look at the "Existing Tags" section for the first file; it may look
> something like this:
> Existing Tags:
> branch_from_branch (branch: 1.1.2.1.2)
> testing (revision: 1.2)
> TestOnDeleted (revision: 1.1)
> abranch (branch: 1.1.2)
> theHead (revision: 1.2)
> release_tag (revision: 1.1.1.1)
> vendor_tag (branch: 1.1.1)
> tag3 (revision: 1.1)
> tag2 (revision: 1.1)
> atag (revision: 1.1)
>
> Suppose you're trying to find the branch point for "abranch". Looking at the
> above, you know that - for this file - abranch is based on 1.1. Make a list
> of other tags for this file that are applied to 1.1 - in this case, we have
> TestOnDeleted, tag3, tag2, and atag.
>
> Now, go through each remaining entry. Here's the next one in my list:
>
> ===================================================================
> File: file2 Status: Up-to-date
>
> Working revision: 2.2
> Repository revision: 2.2 /cvs/cvs-test/jhyslop/file2,v
> Sticky Tag: (none)
> Sticky Date: (none)
> Sticky Options: (none)
>
> Existing Tags:
> branch_from_branch (branch: 1.1.4)
> testing (revision: 1.1)
> TestOnDeleted (revision: 1.5)
> abranch (branch: 1.1.2)
> theHead (revision: 1.5)
> release_tag (revision: 1.1.1.1)
> vendor_tag (branch: 1.1.1)
> tag3 (revision: 1.1)
> tag2 (revision: 1.1)
> atag (revision: 1.1)
>
> Again, for this file, the branch point is 1.1. The tag TestOnDeleted is
> applied to 1.5, so you can cross that tag off the list of candidates,
> leaving tag3, tag2, and atag.
>
> Repeat this process until you have only one candidate left, or you have
> examined all the files in the project. If you have multiple candidates after
> examining all the files, then it doesn't matter - the tags are identical.
> Pick one.
signature.asc
Description: This is a digitally signed message part