Presentation is loading. Please wait.

Presentation is loading. Please wait.

Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure.

Similar presentations


Presentation on theme: "Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure."— Presentation transcript:

1

2 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure. Basic development tasks in WinCvs. Branching and merging. Other CVS interfaces CVS internals

3 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 CVS Features Concurrent access by multiple developers Multiple development lines in a single repository Grouping sources into modules Symbolic source tagging Diffs between versions Configurable logging support Binary files support Repository event triggers

4 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Client-server architecture ewacvs separate server (UNIX or NT) no shared filesystems a server process per connection

5 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 The CVS Repository ewacvs:/data1/cvsroot CVSROOT shr project1 project2 project3 devkits ar cgi doc install reports util web cgipr Resides on a server No working files inside the repository esapps forms unix nt

6 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 CVS Usage Model Checkout, Commit, Update Checkout Makes private copy in working directory Can check out anywhere Check out multiple copies, multiple versions Commit Commit changes to the repository when finished Working copies must be up to date with repository Update Brings working copy up to date with repository

7 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent checkout Master Repository foo.c Working Copy V1.7 Working Copy V1.1 Working Copy V1.2 Working Copy V1.7 Working Copy V1.2.2.1 checkout branch rel_1_fix checkout latest checkout V1.2 checkout V1.1 Karen Michael Brigid Patrick Checkout does not lock the files in repository XX V1.8 or 1.9 V1.2.2.2 checkin checkin prohibited Chris

8 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 CVS and the Development Cycle 1. Check out source files in working directory. 2. Edit source files. 3. Unit test your code. 4. Update working files to merge in changes from other developers (if necessary). 5. Test again if the sources were merged on step 4. 6. Commit changes. 7. Repeat from step 2 until you have a new release. 8. Tag the release. 9. Submit the module name and release tag for integration build.

9 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 checkoutupdatecheckindevelopment Ideal development with CVS repository Developer A Developer B

10 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 checkin X Real development with CVS repository Developer A Developer B updateconflict resolution checkin conflict

11 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 WinCVS on your desktop Configuration Main screen Checking out the sources Viewing source history Diff Commit Update Tag

12 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 WinCVS: Configuration Your UNIX login

13 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 WinCvs: Main screen file view status view modules state icon revision numberfile typebranch name

14 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Checking out the sources

15 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Source history & diff

16 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Commit, Update & Tag update commit tag

17 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 When to commit Commit to mark a working state that you might want to return to later. Commit related files in a single operation. Use a common log message for all the files. Commit to backup your sources. Commit from an office desktop to be able to access the files from home much faster than through filesystem sharing.

18 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Working on branches 1.11.21.3 release_1 cvs tag release_1 cvs up -r rel_1_fix 1.4 release_2 cvs tag release_2 1.2.2.11.2.2.2 patch rel_1_fix cvs tag -b rel_1_fix

19 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Branch if you need... to create sustaining (patch) releases to have multiple development lines from a single repository to do experimental development to merge later or forget about it to keep temporary state of development without affecting builds

20 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Common CVS commands cvs [cvs-options] command [cmd-options] [files] cvs checkoutCheck out source for editing. cvs addAdd new file/directory to repository. cvs removeRemove an entry from the repository. cvs statusShow status of checked out files. cvs logShow revision history for files. cvs diffCompare working files to version in repository or versions inside the repository. cvs updateBring working files into sync with repository. cvs commitcheck files into the repository cvs tagLabel the sources.

21 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 CVSweb Directory listingDiff between 2 versions of the file Other CVS clients

22 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Other CVS clients jCVS Directory listingDiff between 2 versions of the file

23 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 CVS online Official CVS site: http://www.cyclic.com CVS Bubbles: http://www.loria.fr/~molli/cvs-index.html CVS for Web development: http://durak.org:81/cvswebsites WinCvs: http://www.wincvs.org jCVS: http://www.jcvs.org/ Netscape’s Mozilla under CVS: http://cvs-mirror.mozilla.org/webtools/tindertest/showbuilds.cgi?tree=SeaMonkey FreeBSD CVS repository: http://www.freebsd.org/support.html#cvs

24 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 CVS Internals Server is started via inetd (UNIX) with a process per connection Client-server protocol has embedded compression Update sends file’s diff across the line, not the whole file (when possible) UNIX authentication, optional CVS specific passwords/groups, Kerberos and SSH support CVS does not have to run as root SCCI and OLE support are in development Event triggers are implemented via external programs (Perl, sh, C, anything else)

25 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Reserved Checkouts and CVS advisory locks: implemented via cvs edit and cvs watch. Get notification when someone edits or checks in the file. all-o-nothing advisory locks: cvs edit does not succeed if files are already edited by someone else. Implemented using a patch to cvs edit exclusive locks (RCS style): implemented via cvs admin. You cannot commit unless you’ve locked the file. One lock per file per branch. Exclusive file locking prevents parallel development and is not recommended for plain text files

26 Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Advisory locks Developer A Developer B CVS server edit/watch Editors: Developer A Editors: Developer A Developer B edit email alert


Download ppt "Warren Jones, Fluke Co., Eugene Kramer, Remedy Co. Introduction to CVS 1999 Concurrent Versions System Overview of CVS architecture. Repository structure."

Similar presentations


Ads by Google