Version Control
-
Upload
kivanc-kanturk -
Category
Documents
-
view
426 -
download
0
Transcript of Version Control
![Page 1: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/1.jpg)
Version Control Tools
Kıvanç Kantürk
![Page 2: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/2.jpg)
What is Version Control System?
A version control system(VCS) is a repository of files, often the files for the source code of computer programs, with monitored access.
![Page 3: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/3.jpg)
How VCS Work?
Every change made to the source is tracked, along with who made the change, why they made it, and references to problems fixed,by the change.
![Page 4: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/4.jpg)
History of VCS
Version control systems originate from tools that were for software development management. The software was not originally designed for general use in a variety of tasks.
![Page 5: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/5.jpg)
History of VCS (cont)
The best known of the old-time revision control tools is SCCS (Source Code Control System), which Marc Rochkind wrote at Bell Labs, in the early 1970s.
![Page 6: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/6.jpg)
Why VCS is needed?
To track the history and evolution of your project.
To ease collaborating in a project.
To recover from mistakes.
To work simultaneously on, and manage the drift between, multiple versions of your project.
![Page 7: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/7.jpg)
Advantages of VCS
Data Integrity Accountability Rapid Development Distribution of Work Development Branching Ease for program development Productivity & Time Efficiency Record Keeping & Backup Files Software Engineering Process Support To return an older version of software when needed
![Page 8: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/8.jpg)
Disadvantages of VCS
Unnecessary back-up
Only one person can work on a file at a time (on some tools)
![Page 9: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/9.jpg)
Common Properties of Version Control Tools
• A database-like storage system
• Use version numbers while storing projects
• Similar functions(merge which is being used widely in projects)
• Compare the differences between two codes by highlighting or using an information window
• Keep a back-up file for the project
• System locks the file to prevent “concurrent access” problems.
• Logs to current changes during a project
• Branching
![Page 10: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/10.jpg)
Differences Between Version Control Tools
• Repository difference(Client/Server or Distributed model)
• Concurrency model(Locking, Merging, Hybrid)
• Platforms Supported
• Cost
![Page 11: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/11.jpg)
The Elements of Version Control Systems
• Logs
• Tagging
• Revisions
• Branching
• Locking versus Merging
• The Repository and Working Directory
![Page 12: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/12.jpg)
Effects of VCS
Effects on software development
Effects on coding
Effects on programming market
![Page 13: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/13.jpg)
Most Commonly Used VCS tools
SCCS(Source Code Control System) RCS (Revision Control System) CVS (Concurrent Version System) Subversion ClearCase Bitkeeper
![Page 14: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/14.jpg)
(SCCS)Source Code Control System
• Store text files.
• Retrieve specific versions of files.
• Control updating access to files.
• Identify the version of a retrieved file.
• Record when, why and by whom changes are made to a file.
![Page 15: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/15.jpg)
(SCCS)Source Code Control System
![Page 16: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/16.jpg)
(RCS) Revision Control System
• Walter Tichy developed a free alternative to SCCS in the early 1980s
• RCS required developers to work in a single shared workspace, and to lock files to prevent multiple people from modifying them simultaneously.
• In single-user scenarios, such as server configuration files or scripts, RCS may still be the best choice between other revision control tools
![Page 17: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/17.jpg)
(CVS) Concurrent Version System
• Later in the 1980s, Dick Grune used RCS as a building block for a set of shell scripts he initially called CMT, but then renamed to CVS (Concurrent Versions System)
• Each developer had a copy of every project file, and could modify their copies independently. They had to merge their edits prior to committing changes to the central repository.
![Page 18: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/18.jpg)
(CVS) Concurrent Version System
![Page 19: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/19.jpg)
Subversion
• In 2001, Jim Blandy and Karl Fogel, two developers who had worked on CVS, started a project to replace it with a tool that would have a better architecture and cleaner code.
• It adds multi-file atomic commits, better namespace management, and a number of other features that make it a generally better tool than CVS
• SVN uses branching
![Page 20: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/20.jpg)
Subversion
![Page 21: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/21.jpg)
Subversion
![Page 22: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/22.jpg)
Differences between VCS tools
Repository model Concurrency model Cost Platforms supported
![Page 23: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/23.jpg)
Tools and Properties
Software Maintainer Repository
model Concurrency
model Platforms supported Cost
AccuRev AccuRev, Inc. Client-server Merge or lockUnix-like, Windows, Mac
OS X$1495 for each licence/Free 2-user 30 day trial
licenses available
Aldon Aldon Client-server Merge or lock Linux, Windows, OS/400 Unspecified
Alienbrain Avid Technology,
Inc.Client-server Merge or lock
Linux, Windows, Mac OS X
$495/$895/$1,495 for each licence(programmer/artits/advance)/free for up to two
users.
AllFusion Harvest Change Manager
CA, Inc. Client-server Merge or Lock Unix-like, Windows $1595 for each licence.
Bazaar Canonical Ltd. Distributed MergeUnix-like, Windows, Mac
OS XFree
BitKeeper BitMover Inc. Distributed MergeUnix-like, Windows, Mac
OS XQuoted on an individual basis.
ClearCase IBM RationalClient-server and
DistributedMerge or lock
Unix-like, Windows, i5/OS, z/OS
$4250 per concurrent user plus tax (includes 12 months support)
Code Co-op Reliable Software Distributed Merge Windows $150 per seat
Codeville Ross Cohen Distributed MergeUnix-like, Windows, Mac
OS XFree
CVS The CVS Team Client-server MergeUnix-like, Windows, Mac
OS XFree
![Page 24: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/24.jpg)
Tools and Properties
CVSNT
March Hare Software and community members.
Client-server Merge or LockUnix-like, Windows, Mac
OS X, OS/400Free or commercial
Darcs David Roundy Distributed MergeUnix-like, Windows, Mac
OS XFree
DesignSync MatrixOne ? Merge or Lock Unix-like, Windows Commercial
Git Junio C Hamano Distributed MergePOSIX, Windows, Mac OS
XFree
GNU arch Andy Tai Distributed MergeUnix-like, Windows, Mac
OS XFree
LibreSource Synchronizer
Artenum Client-server MergeUnix-like, Windows, Mac
OS XFree
Mercurial Matt Mackall Distributed MergeUnix-like, Windows, Mac
OS XFree
Monotone Nathaniel Smith, Graydon Hoare
Distributed MergeUnix-like, Windows, Mac
OS XFree
Perforce Perforce Software
Inc.Client-server Merge or Lock
Unix-like, Windows, Mac OS X
Free for up to 2 users, and for OSS development; else $800 per seat, with volume discounts [21]
PlasticSCM Codice Software Client-server MergeUnix-like, Windows,
Mac OS X$621 per seat, with volume discounts [23]
![Page 25: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/25.jpg)
Tools and Properties
PureCM PureCM.com Ltd Client-server Merge or LockUnix-like, Windows,
Mac OS XFree for up to 2 users. $1,000 for 5 users [24]
Razor Visible Systems Client-server Merge or lockUnix, Linux,Windows,
Mac OS X$800-$1,000 for each concurrent licence/Free unlimited users 21 day trial licenses available
SourceAnywhere Hosted
Dynamsoft Client-server Merge or Lock
A SaaS application; Clients: Windows and
Cross-platform via Java based client
Has Free Plan and other Plans [27]
SourceHaven Veterisoft, Inc. Client-server ?Unix-like, Windows,
Mac OS X$295 per seat with volume discounts
StarTeam Borland Client-server Merge or lockWindows and Cross-
platform via Java based client
Contact Borland [29]
Subversion (SVN) CollabNet, Inc. Client-server Merge or lock[4] Unix-like, Windows, Mac OS X
Free (Commercial support/services available)
Surround SCM Seapine Software Client-server Merge or lockUnix-like, Windows,
Mac OS XCommercial
SVK Best Practical Distributed MergeUnix-like, Windows, Mac
OS XFree
Team Foundation Server
Microsoft Client-server Lock or merge
Server: Windows Server 2003; Clients: Windows and Web included; Java client (for Eclipse IDE, MacOS, Unix) available
Licensed through MSDN subscription or through direct buy [33]
Telelogic Synergy Telelogic ABClient-server and
DistributedMerge or Lock Linux, Windows, Unix-like Contact Telelogic [34]
![Page 26: Version Control](https://reader034.fdocuments.in/reader034/viewer/2022051113/55c0ea27bb61eb20778b46dc/html5/thumbnails/26.jpg)
Tools and Properties
Vault SourceGear LLC Client-server Lock or Merge Unix-like, Linux, Windows $249 per user
Visual SourceSafe Microsoft Client-server Lock or merge Windows Bundled with Visual Studio, $549.00 per full version