info-cvs
[Top][All Lists]
Advanced

[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.

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

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