Upload
balavignesh-kasinathan
View
69
Download
0
Embed Size (px)
Citation preview
Concurrent Versioning System Indian Linux Users GroupChennai
Project Version Management with CVS
K.Bala [email protected]
Indian Linux Users Group Chennai
Concurrent Versions System
Concurrent Versioning System Indian Linux Users GroupChennai
Versioning Software – Why Bother?
● Projects get messy● Unnecessary Duplication● Working with other developers is hard!● Difficult for comparison● No Revert Back
Concurrent Versioning System Indian Linux Users GroupChennai
The Goals of Version Management
● Record Keeping– Any previous version available at any moment
● Collaboration– Ease synchronization between developers
Concurrent Versioning System Indian Linux Users GroupChennai
"I created CVS to be able to cooperate with my students Erik Baalbergen and Maarten Waage on the ACK (Amsterdam Compiler Kit) C compiler.
The three of us had vastly different schedules (one student was a steady 95 worker, the other was irregular, and I could work on the project
only in the evenings). Their project ran from July 1984 to August 1985. CVS was initially called cmt, for the obvious reason that it allowed us to
commit versions independently."
— Dick Grune, Dick Grune's website
History Of CVS
Concurrent Versioning System Indian Linux Users GroupChennai
Sand Box
Repository
Terminology
Sand BoxSand Box
Check Out
First Time
Commit
Update
Concurrent Versioning System Indian Linux Users GroupChennai
Devi Local Version 1.1
Muthu Local Version 1.1
Asha Local Version 1.1
The “Repository”
Checkout<?php
echo “Hello World”;
?>
a.php Version 1.1
Concurrent Versioning System Indian Linux Users GroupChennai
Devi Local Version 1.2
Muthu Local Version 1.1
Asha Local Version 1.1
The “Repository”
Make Change and Commit
I changed
logic
<?php
echo “Hello World”;echo “hi”;
?>
a.php Version 1.1
Commit
Concurrent Versioning System Indian Linux Users GroupChennai
Devi Local Version 1.2
Muthu Local Version 1.1
Asha Local Version 1.2
The “Repository”
Update
I need Up to DateUpdate
Concurrent Versioning System Indian Linux Users GroupChennai
Devi Local Version 1.2
Muthu Local Version 1.1
Asha Local Version 1.2
The “Repository”
Commit and Conflict
I Changed Code.
<?phpprint “Hello World”;?>
a.php Version 1.1
<?php
echo “Hello World”;echo “hi”;
?>
Concurrent Versioning System Indian Linux Users GroupChennai
Devi Local Version 1.2
Muthu Local Version 1.1
Asha Local Version 1.2
The “Repository”
Update and then Commit
Commit
Old Version. So,Update First
Error
Concurrent Versioning System Indian Linux Users GroupChennai
Devi Local Version 1.2
Muthu Local Version 1.1
Asha Local Version 1.2
The “Repository”
Conflicts
Update
Concurrent Versioning System Indian Linux Users GroupChennai
<?php
echo “Hello World”;
?>
a.php Version 1.1 a.php Version 1.2
<?php
echo “Hello World”;echo “hi”;
?>
<?php
print “Hello World”;
?>
a.php Version 1.1
<?php
echo “Hello World”;
?>
Update
Conflicts
a.php Version 1.3
<?php
print “Hello World”;echo “hi”;
?>
Conflicts
<?php<<<<<a.phpprint “Hello World”;=======Echo “Hello World”;echo “hi”;>>>>>>1.2?>
Concurrent Versioning System Indian Linux Users GroupChennai
Devi Local Version 1.2
Muthu Local Version 1.3
Asha Local Version 1.2
The “Repository”
Conflicts Corrected
Commit
a.php Version 1.3
<?php
print “Hello World”;echo “hi”;
?>
Concurrent Versioning System Indian Linux Users GroupChennai
Other Features
• Creating snapshot using Tags.
• Creating branches of the project.
• Pserver for remote ClientServer.
• Finding out who did what (Log messages)
• Revert back to any position.
• Watching the files.
Concurrent Versioning System Indian Linux Users GroupChennai
CVS and OS Support
● Relatively simple● Available on a wide number of platforms● Clients
– Most Linux distributions come with CLI client– Available for Mac & Win32, CLI & GUI
● Server– Linux CLI program is the server– Win32 server available
Concurrent Versioning System Indian Linux Users GroupChennai
● Linux– Generally comes with your distribution
● Windows– CVSNT http://cvsnt.org
● Mac OS X– Comes with the free developer tools
CVS Server
Concurrent Versioning System Indian Linux Users GroupChennai
● Free pclcvs An Emacs Interface To CVS Cervisia – With KDE Desktop WinCVS http://www.wincvs.org/ MacCVS http://www.wincvs.org/downloads.html TortoiseCVS http://www.tortoisecvs.org/ Eclipse http://eclipse.org● Commerical
SmartCVS http://smartcvs.com
GUI CVS Client
Concurrent Versioning System Indian Linux Users GroupChennai
CVS and Open Source
• CVS and SSH clients are used by most developers on SourceForge.net and freshmeat.
• Most of the projects in opensource are maintained by CVS.
Concurrent Versioning System Indian Linux Users GroupChennai
CVS Resources
● CVS Home http://ximbiot.com/cvs/cvshome/● Web Site Projects with CVS
http://www.durak.org/cvswebsites/howtocvs/● Open Source Development with CVS http://cvsbook.red
bean.com/
Concurrent Versioning System Indian Linux Users GroupChennai
Advantages over CVS
• Atomic commits. Interrupted commit operations do not cause repository inconsistency or corruption.• Renamed/copied/removed files retain full revision history.• Native support for binary files, with spaceefficient binarydiff storage.• Directories are versioned. Entire directory trees can be moved around and/or copied very quickly, and retain full revision history.• Constant time branching and tagging.• Optimized repository accesses. This reduces unnecessary network traffic to the repository host.
SubVersion