Concurrent Versioning System - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

Concurrent Versioning System

Description:

Up-to-date identical with last revision in the repository ... init create the repository ... update update the local copy to be synchronized with the repository ... – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 32
Provided by: abad2
Category:

less

Transcript and Presenter's Notes

Title: Concurrent Versioning System


1
Concurrent Versioning System
2
Agenda
  • Benefits of using CVS
  • How to use command line interface of the CVS on
    GAUL
  • How to use winCVS to connect to CVS repository on
    GAUL
  • Useful tips

3
Benefits
  • Parallel Collaboration
  • Ensure working on most recent version
  • Conflict Annotation
  • Check points / milestones / releases
  • History

4
How to achieve Parallel Collaboration
  • Common working area
  • Contains initial version of the project (initial
    release)
  • Accessible by all team members
  • Changes controlled and logged

5
How to achieve Parallel Collaboration using CVS
  • Common working area
  • Repository
  • /gaul/special/cs307/cs307-XX ? for G8XX

6
How to achieve Parallel Collaboration using
CVSCommon Working Area
  • Create a directory (optional)
  • /gaul/special/cs307/cs307-XX/cvs_rep
  • Set CVSROOT environment variable
  • Csh/tcsh
  • setenv CVSROOT /gaul/special/cs307/cs307-XX/cvs_re
    p/
  • Bash/sh
  • export CVSROOT/gaul/special/cs307/cs307-XX/cvs_re
    p/
  • Create a repository
  • cvs init

7
How to achieve Parallel Collaboration using
CVSProjects initial release
  • cd to the directory containing the project
  • cvs import m ltdescriptiongt ltproject namegt
    ltvendor taggt ltrelease taggt

8
How to achieve Parallel Collaboration using
CVSAccessible by all team members
  • Set the group ownership of the repository
  • chgrp -R cs307-XX CVSROOT
  • Give rwx permissions to the group
  • chmod -R grwx CVSROOT

9
How to achieve Parallel Collaboration using
CVSChanges are controlled and logged
  • No one has write permissions on the files in the
    repository
  • Each developer should have a local working copy
  • cvs checkout ltproject namegt
  • A directory of the project is created
  • CVS directory contains administrative files

10
(No Transcript)
11
How to achieve Parallel Collaboration using
CVSChanges are controlled and logged
  • Submit changes to the repository
  • cvs commit
  • Get latest version
  • cvs update
  • Remove file
  • Remove it from working directory
  • cvs remove ltfile namegt ? scheduled for removal
  • cvs commit ? actually removed
  • Add file
  • Create the file in your working copy
  • cvs add ltfile namegt ? scheduled
  • cvs commit ? actually added

12
How to achieve Parallel Collaboration using
CVSEnsure working on most recent version
  • Suppose two developers checked out the files of
    the project
  • Both of them made changes

13
How to achieve Parallel Collaboration using
CVSEnsure working on most recent version
  • One of them commits their work after ensuring
    that the local copy compiles

14
How to achieve Parallel Collaboration using
CVSEnsure working on most recent version
  • The other developer now doesnt have the recent
    version, so when trying to commit it fails

15
How to achieve Parallel Collaboration using
CVSEnsure working on most recent version
  • CVS will require Bob to update his local version
    first
  • After ensuring that the updated version works he
    can commit his work

16
How to achieve Parallel Collaboration using
CVSConflict Annotation
  • What if both developers were working on the same
    file
  • If changes were in different lines, CVS merges
    the two copies
  • If changes were in same line, CVS annotate a
    conflict and directs the developer to solve it

17
How to achieve Parallel Collaboration using
CVSConflict Annotation
Changes in same file but different lines
18
How to achieve Parallel Collaboration using
CVSConflict Annotation
Changes in same file but different lines
Conflict annotated
19
How to achieve Parallel Collaboration using
CVSConflict Annotation
Changes in same file but different lines commit
after resolving conflict
20
How to achieve Parallel Collaboration using
CVSEnsure working on most recent version
  • cvs status ltfile namegt
  • Up-to-date ? identical with last revision in the
    repository
  • Locally modified ? you updated the file but
    didnt submit yet
  • Needing Patch ? other developer committed changes
    to the repository
  • Needs Merge ? other developer committed changes
    to the repository and you made some changes as
    well

21
How to achieve Parallel Collaboration using
CVSCheck points / milestones /releases
  • cvs tag ltdescriptive tag releasegt
  • Adds the given tag to all the files of the
    project
  • cvs checkout r ltreleasegt ltprojectgt
  • Checks out the specified release of the project
    instead of the latest release

22
How to achieve Parallel Collaboration using
CVSHistory
  • cvs log ltfile namegt
  • Information about different revisions of the file
    including the date of change, the author and
    number of lines of added or removed
  • cvs annotate ltfile namegt
  • Each line in the file
  • Date , reversion and author

23
winCVS
  • Download latest version (2.1.1.1)
  • cvsgui.sourceforge.net
  • Install winCVS on your computer

24
winCVS
  • Remote ? Checkout module

25
(No Transcript)
26
  • Folders controlled by CVS are distinguished by a
    check mark
  • We can update/commit the contents of a folder
    using the context menu

27
  • Cannot edit files if out dated
  • Changed files are marked by red color
  • You can edit the files using the editor you
    choose (default Notepad)

28
  • Admin ? preferences
  • WinCvs tab

29
Useful tips
  • Whenever you work on the project start by
    updating
  • Make sure that your local copy compiles and works
    before committing
  • Whenever you make changes add a descriptive
    understandable comment
  • Make periodical backups for your local copies

30
Summary
  • CVS provide a controlled common working area
    called Repository
  • Several developers can work in parallel, each
    works in their own local working copy
  • CVS provide commands to synchronize the local
    copies with the repository
  • CVS keep a log of all changes
  • winCVS is a windows-based CVS client that can
    connect to CVS repository via SSH

31
cvs commands
  • init ? create the repository
  • checkout ? to create local working copy (-r
    option to copy a specific release)
  • update ? update the local copy to be synchronized
    with the repository
  • commit ? submit changes to the repository
  • add ? to add a file
  • remove ? to remove a file
  • status ? view the status of a specific file
  • tag ? add a tag to all files
  • log ? view a log of a specific file
  • annotate ? view contents of a specific file
    annotated by extra information
Write a Comment
User Comments (0)
About PowerShow.com