+ All Categories
Home > Documents > Version Control

Version Control

Date post: 04-Aug-2015
Category:
Upload: kivanc-kanturk
View: 426 times
Download: 0 times
Share this document with a friend
Popular Tags:
26
Version Control Tools Kıvanç Kantürk
Transcript
Page 1: Version Control

Version Control Tools

Kıvanç Kantürk

Page 2: Version Control

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

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

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

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

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

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

Disadvantages of VCS

Unnecessary back-up

Only one person can work on a file at a time (on some tools)

Page 9: Version Control

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

Differences Between Version Control Tools

• Repository difference(Client/Server or Distributed model)

• Concurrency model(Locking, Merging, Hybrid)

• Platforms Supported

• Cost

Page 11: Version Control

The Elements of Version Control Systems

• Logs

• Tagging

• Revisions

• Branching

• Locking versus Merging

• The Repository and Working Directory

Page 12: Version Control

Effects of VCS

Effects on software development

Effects on coding

Effects on programming market

Page 13: Version Control

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

(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

(SCCS)Source Code Control System

Page 16: Version Control

(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

(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

(CVS) Concurrent Version System

Page 19: Version Control

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

Subversion

Page 21: Version Control

Subversion

Page 22: Version Control

Differences between VCS tools

Repository model Concurrency model Cost Platforms supported

Page 23: Version Control

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

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

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

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


Recommended