info-cvs
[Top][All Lists]
Advanced

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

Suggestions for using CVS with a system/software project


From: Dustin Puryear
Subject: Suggestions for using CVS with a system/software project
Date: Mon, 1 Dec 2003 09:07:46 -0600

I am just now moving a project to CVS, and would like some suggestions. I'm
really just asking for your experiences in what works and what doesn't. I
appreciate any input!

I have a project that combines custom software, FreeBSD, and some software
initially grabbed from FreeBSD ports. (We use the FreeBSD ports version
because any FreeBSD-patches to the software have been done for us.) We do
not use new versions of any software from ports unless we do thorough
testing--we would rather keep to a single version of each software so that
we know about the bugs, specific implementation, etc. In addition, we
customize some ports packages, so grabbing the latest and greatest isn't
beneficial.

The proposed CVS layout that I have so far is as follows:

projectname/kernel
projectname/tools/X
projectname/tools/Y
projectname/tools/Z
projectname/userinterface
projectname/component/softwareX
projectname/component/softwareY
projectname/component/softwareZ
...

Anything under projectname/tools/ is custom. In addition, various software
under projectname/component/ may be custom developed, customized from ports,
or customized from downloaded source. By 'component' I mean to imply that
this software works together in some fashion to deliver a service, or is in
some way a core component of the software. projectname/kernel/ is a
customized FreeBSD kernel.

In my mind, we have three types of software to worry about:

1. custom developed - goes into CVS just like any custom software package
being developed.

2. customized, existing software - if we are grabbing the software from
ports should we just check that into CVS like we would with any other
customized source? I would say that we are relying on 20-30 ports packages
(we only need a few services, but the dependencies grab a lot of other
software). So in this case we need to check in 20-30 source packages? If we
decide to grab a new release from ports we would just check that in on top
of the existing source? Should we consider a special directory for this?

projectname/kernel
projectname/tools/X
projectname/tools/Y
projectname/tools/Z
projectname/component/softwareX
projectname/component/softwareY
projectname/component/softwareZ
projectname/freebsd-ports/softwareX
projectname/freebsd-ports/softwareY
projectname/freebsd-ports/softwareZ
...

3. non-customized, existing software

We have some software that we use from ports, and we depend on specific
versions. Should we just keep a copy of tgz in an archive outside of CVS, or
should we insert this into CVS too? Often, we just install the software and
then one of our tools creates a customized configuration for it. Should we
be checking in the configuration files then? Our tools overwrite them
anyway, and we aren't really customized the configuration files by hand.





reply via email to

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