1 / 22

CVS 簡介

數位芝麻網路公司 蔡志展 < chihchun@digitalsesame.com> 2001/8/18. CVS 簡介. 大綱. CVS 簡介 CVS 安裝 CVS 設定 ( Linux/Windows) CVS 指令簡介 CVS 多人環境的應用. CVS 簡介. What is CVS ? Idea of CVS Benefits, Fancy features . What Is Concurrent Versions System ?. Version controll system

doctor
Download Presentation

CVS 簡介

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 數位芝麻網路公司 蔡志展 <chihchun@digitalsesame.com> 2001/8/18 CVS 簡介

  2. 大綱 • CVS 簡介 • CVS 安裝 • CVS 設定 (Linux/Windows) • CVS 指令簡介 • CVS 多人環境的應用

  3. CVS 簡介 • What is CVS ? • Idea of CVS • Benefits, Fancy features

  4. What Is Concurrent Versions System ? • Version controll system • Multi-developer environment

  5. Version Management • Software Development • Website Management • Documentations • Synchronization of distributed effort • ... anywhere digital data evolves

  6. Requirements for VC • Multiple Developers - concurrent Access • History • View diffs • Rollback changes • Release Management

  7. Idea of CVS • The idea of the CVS is to create a filesystem, where each file has remembers all the modifications made to it. In other words it is all the versions of it at the same time. • Filesystem resides in a repository, that can be stored to local or remote host. • All the files are edited outside of the repository in some working directory and in some phase synchronized with the repository. • Files are moved to, from and updated from repository with special tool called cvs, which is available for most platforms

  8. So What is it good for ? • Version controll and connecting multiple developer together in one project, of course :) • Document management and archiving • Nice way to do one project with multiple machines and still manage the versions • Allows free experimenting on project • Following the growth of the project • Backupping - it forces one to take backups with neglible work very often

  9. Benefits of CVS • Automatic, constant and forced backupping • When programming, frees the development • Gives freedom to choose afterwards, when the program is ready • Saves all the versions for later use • Clean way of saving only the necessary files and managing projects • Gives freedom to develop on multiple machines simultaneously

  10. Fancy Features • Multiple developer support (file locking, etc.) • Bonsai - www-interface (for example see Gnome project) • Keyword substitutions • Development of several version at the same time • Multiplatform-support (works even on obscure platforms like Windows)

  11. Essential CVS Terminology - Repository • CVS stores all files in a centralized directory called the repostiory. The directory is defined by the environment variable $CVSROOT.

  12. Essential CVS Terminology - Module • Modules are just the toplevel directories in the Repository. • You can combine multiple modules in your own directory structure. See documentation for CVSROOT/modules • incorporate generic libraries in your own sourcetree, but be able to maintain them individually. • The files in the repository are organized in modules. Each module is made up of one or more files, and can include files from several directories. A typical usage is to define one module per project.

  13. Version Numbers • Every file in a CVS repository can contain many versions, which are given version numbers in form x.y[.x.y[...]]. • The history of each file is tracked with an incrementing revision number • For each revision there is a log entry • Revision numbers have the format 1.25 if they're on the main trunk, branches have something like 1.33.2.16

  14. Version Numbers • Version numbering is automatic i.e. number y is automatically incresed avary time file is changed: 1.1 1.2 1.3 1.4 1.5

  15. Release Management • marking important stages in the development e.g. milestones, code freezes or actual releases • We want to reproduce the same state later. • making bug-fix releases, starting at a specific release. • newly added files should not show up in the old release • files which are deleted in the meantime should still show up if we reproduce the old state.

  16. Tags • A Tag is simply a symbolic name for a specific revision • Tagging all files in one directory or module marks the current stage. • Can be used as synonym for a revision in any CVS-command • cvs tag <tagname> applies the tag to the current revision of each file • Version numbers can be treated as a internal information in CVS and only symbolic names - tags for version used to mark releases.

  17. Branches • Version number can contain more than two numbers to mark branches. • Branch can start from any version and start depeloping independently from the rest of the software. • In some point of the development of a branch, it can be merged to main trunk in necessary.

  18. Interaction with the repository • Check out • Syntax : cvs checkout [options] module ... • Add • Syntax : cvs add [options] file ... • Remove • Syntax : cvs remove [options] [file ...] • Examine status • Syntax : cvs status [options] [file ...]

  19. Interaction with the repository – count. • Update • Syntax : cvs update [options] [file ...] • Check in (commit) • Syntax : cvs commit [options] [file ...] • Release module • Syntax : cvs release [options] module ... • Import module • Syntax : cvs import [options] repository_dir vendor_tag release_tag • Export module • Syntax : cvs export [options] module ...

  20. Conflict Resolution • Conflicts are rare, since most concurrent editing is done at different places in the file • usually easy to resolve - if not, there seems to be a communication problem in the group in general • On conflict, both parts are shown in the file, to be resolved by hand. See demo.

  21. References • CVS-Site • <http://www.cvshome.org/> • WinCVS Windows Client • <http://www.wincvs.org/>

  22. Your time. Q&A

More Related