SLAC PEP-II
BABAR
SLAC<->RAL
Babar logo
HEPIC E,S & H Databases PDG HEP preprints
Organization Detector Computing Physics Documentation
Personnel Glossary Sitemap Search Hypernews
Unwrap page!
Comp. Search
Who's who?
Meetings
FAQ Homepage
Archive
Environment
Administration
New User Info.
Web Info/Tools
Monitoring
Training
Tools & Utils
Programming
C++ Standard
SRT, AFS, CVS
QA and QC
Remedy
Histogramming
Operations
PromptReco
Simulation Production
Online SW
Dataflow
Detector Control
Evt Processing
Run Control
Calibration
Databases
Offline
Workbook
Coding Standards
Simulation
Reconstruction
Prompt Reco.
BaBar Grid
Data Distribution
Beta & BetaTools
Kanga & Root
Analysis Tools
RooFit Toolkit
Data Management
Data Quality
Event display
Event Browser
Code releases
Databases
Check this page for HTML 4.01 Transitional compliance with the
W3C Validator
(More checks...)

FAQ Answerpage


QUESTION:
"How do I use the CVS system to make changes to another user's package? In particular, how do I make needed changes to "common" packages, keep these changes consistent with my own work, and not cause trouble for other users?"


ANSWER:
The following detailed response will be included in the upcoming User Workbook. At that time, the details here will be omitted and replaced with a pointer to the User Workbook.

The following is one technique that involves refining your changes outside of the CVS system before you commit changes in CVS.
The basic idea is to keep things at known revisions (i.e. at a known CVS level) until you are ready to commit a consistent set of changes. This is particularly important if your changes are in several packages.

  1. Start with a test release based on something recent.
  2. addpkg the packages you want to modify without using any particular tags or the -h option. This may not give you the most current contents of CVS, but it will give you a consistent starting point.
  3. Edit, build, test, edit, build, test, edit, build, test, ...
  4. Once you have something working well, you want to commit it back to CVS. This may involve several packages, some of which are no longer at the revision level you originally checked out. Contact the package coordinator(s) and talk to them.
    • Note that this need not delay development work, only your committing code into CVS, which is in any case a serious step with implications for many other users.
    • If they think that the head of CVS is in good shape, do a cvs update -A to update your directories to the head of CVS, fix any conflicts, build, test, and (hopefully) commit.
    • The head of CVS may depend on various changes to other packages; one of the reasons you contacted the coordinator was to find out about these dependencies. addpkg (with the required tags) the required packages, then do a cvs update -A to update your directories to the head of CVS, fix any conflicts, build, test, and (hopefully) commit.
    • If they ask you to wait, be patient. It's their call. Commit your stuff when they say its OK (you can continue to develop in another set of directories if you want to).
  5. At this point, your changes are in CVS. The package coordinators should tag your changes so they can refer to them easily, although they may not be ready for a release. (If they forget, ask them to). You should now base your next development iteration on these versions, so the whole process can repeat when needed.
Note how this differs from the usual "start with the head" and "commit when ready" cycle. First, you are guaranteed (well, almost) to start with a consistent set of code. This can save you a lot of grief. When you're ready to commit, you'll update as needed. This can be confusing, as updating packages can result in dependencies on other packages, but by getting in touch with the package coordinator(s), you'll get the most recent info on what else you'll need. Finally, by committing a consistent set of changes which get tagged, others will be able to figure out what's going on.

For a more detailed description of how to commit changes in the CVS system, see Development Software and CVS.

(Last updated 7/9/98)

[SLAC Homepage]  [Search] [FAQ Homepage]
If you have a FAQ (with or WITHOUT an answer), use our prototype submission form.
If you have comments or suggestions, email me at sison@slac.stanford.edu