info-cvs
[Top][All Lists]
Advanced

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

import of multiple vendor versions + local mods


From: Tim Mooney
Subject: import of multiple vendor versions + local mods
Date: Wed, 4 Dec 2002 11:36:18 -0600 (CST)

All-

I've been through the Cederqvist, paying special attention to sections 13
(Tracking third party sources) and 5 (Branching and merging), but I'm
running into some problems and would welcome suggestions on what I'm doing
wrong.

My site has been a casual user of CVS for years, but we've never tried
anything as exotic as branching before.  ;-)  Here's what I'm trying to
do.

We have a software package, foo, written by a contractor, that we have
finally decided to put under CVS.  The earliest copy of the sources for
`foo' consists of:

        foo/foobar.c
        foo/foobar.h

We have a later copy of the stock (vendor) software, which is just:

        foo/foobar.c
        foo/FooBAR.h

(the header has been renamed, but there are no other differences between
it and the original foobar.h -- foobar.c is different between the two
versions).

We have a third (later) copy of the stock (vendor) software, which is
just:

        foo/foobar.c
        foo/FooBAR.h

with changes to just foobar.c again.

Finally, we've made substantial local modifications to foobar.c and added
a couple of additional files (a Makefile and a couple other supporting
files, e.g. READMEs).  Our local modifications are all based on the
most recent version of the stock/vendor software.

Following the example in section 13 of the Cederqvist, I did three vendor
imports, like this:

        <untar original copy of vendor sources>
        cd foo
        cvs import -m 'import of earliest FooBAR library sources I could find' 
contractsoft/FooBAR FOOBAR_DIST FOOBAR_ORIG
        cd ..
        rm -rf foo
        <untar 2nd/later copy of vendor sources>
        cd foo
        cvs import -m 'import of 20011020 FooBAR library sources' 
contractsoft/FooBAR FOOBAR_DIST FOOBAR_20011020
        cd ..
        rm -rf foo
        <untar 3rd copy of vendor sources (most recent vendor copy)>
        cd foo
        cvs import -m 'import of 20020110 FooBAR library sources' 
contractsoft/FooBAR FOOBAR_DIST FOOBAR_20020110


Now, at this point I noticed that if I do a

        cvs checkout contractsoft/FooBAR

I get:

        foo/foobar.c
        foo/foobar.h
        foo/FooBAR.h

Is there something I need to do (possibly between the 1st and 2nd imports,
or maybe after the 2nd import) to let CVS know that `foobar.h' is not
relevant for vendor versions past the first import (its been renamed to
FooBAR.h in vendor versions #2 and #3).

Next, I *thought* I wanted to create a "local-patches" branch, where we
keep our local mods to the vendor source, but after some reading and
reading between the lines, I'm guessing that that wasn't necessary?
Assuming we only have one line of local patches against the vendor source,
there's no need to specifically do a branch is there -- our local stuff
just lives on the HEAD, right?

Anyway, here's what I (probably wrongly) did:

        cd somewhere-else
        cvs rtag -b -r FOOBAR_20010110 ndsu-patches contractsoft/FooBAR
        cvs checkout contractsoft/FooBAR
        <untar our modified copy of the sources for foobar, overwriting the
        ones I checked out>

At this point, I haven't committed the changed (locally-modified) copies
of the patches, because I'm not sure I'm proceeding down the right
trail.

Can anyone shed some light on how I should proceed?  How do I make
CVS realize that `foobar.h' isn't relevant past the original version of
the vendor sources, and how do I get our local changes to be the "default"
version that's checked out when someone just does

        cvs checkout contractsoft/FooBAR

Thanks in advance,

Tim
-- 
Tim Mooney                              address@hidden
Information Technology Services         (701) 231-1076 (Voice)
Room 242-J6, IACC Building              (701) 231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164




reply via email to

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