Title: Version Control
1Version Control
June 06, 2007
Team NS2 Nghia Nguyen Shane Bergman Hongsun Jang
(Sunny)
2OVERVIEW
3Definition
- The management of multiple versions of the same
unit of information - Most commonly used in engineering and software
development - to manage ongoing development of digital
documents like application - source code, art resources such as blueprints
or electronic models and - other critical information that may be worked
on by a team of people.
- In most software development projects, multiple
developers work on the - program at the same time.
- If two developers try to change the same file at
the same time, without - some method of managing access the developers
may easily end up - overwriting each other's work.
4How to Use
- Changes to these documents are identified by
incrementing an - associated number or letter code, termed the
"revision number", - "revision level", or simply "revision" and
associated historically with - the person making the change.
- Most version control systems, such as CVS, allow
multiple developers - to be editing the same file at the same time.
- The first developer to "check in" changes to the
central repository - always succeeds. The system provides
facilities to merge changes into - the central repository, so the improvements
from the first developer - are preserved when the other programmers
check in.
5How to Use
File Locking
The simplest method is to lock files so that only
one developer at a time has write access to the
central "repository" copies of those files. Once
one developer "checks out" a file, others can
read that file, but no one else is allowed to
change that file until that developer "checks in"
the updated version (or cancels the checkout).
it can provide some protection against difficult
merge conflicts when a user is making radical
changes to many sections of a large file
locked for too long, other developers can be
tempted to simply bypass the revision control
software and change the files locally anyway.
That can lead to more serious problems.
Version Merging
Most version control systems, allow multiple
developers to be editing the same file at the
same time. The first developer to "check in"
changes to the central repository always
succeeds. The system provides facilities to
merge changes into the central repository, so the
improvements from the first developer are
preserved when the other programmers check in.
unlike file locking everyone is able to check the
same file out
everytime a developer check file in, it will not
alway checks in successfully due to the change
made in earlier check in by other developer.
6How to Use
Distributed Version Control
Distributed systems take a peer-to-peer approach
to vision control. Rather than a single, central
repository on which clients synchronize, each
peer's working copy of the codebase is a
repository.
usually by not needing a server to store files.
Not making work available and locatable by other
developers. Not making it easy to understand the
changes made.
7CVS
- The Concurrent Versions System (CVS), also known
as the Concurrent - Versioning System.
- Open-source version control system invented and
developed - by Dick Grune in the 1980s.
- CVS keeps track of all work and all changes in a
set of files, typically - the implementation of a software project, and
allows several - (potentially widely-separated) developers to
collaborate. - CVS has become popular in the open source
software world - and is released under the GNU General Public
License.
- Developed from an earlier versioning system
called Revision Control System (RCS) - which manages individual files but not whole
projects. - Dick Grune created CVS to be able to cooperate
with his students in 19841985. - The code was publicly released on June 23, 1986
- Evolved into the current version of CVS started
in 1989 - CVSNT The development of the Microsoft Windows
version of CVS
8CVS
- Several developers may work on the same project
concurrently -gt - Each one editing files within their own working
copy of the project -gt - and sending (or checking in) their modifications
to the server - To avoid the possibility of people stepping on
each other's toes - The server will only accept changes made to the
most recent version of a file
9CVS
- Compare algorithms
- Request a complete history of changes
- Check out a historical snapshot of the project
as of a given date or as of - a revision number.
- Use the "update" command to bring their local
copies up-to-date with - the newest version on the server. This
eliminates the need for repeated - downloading of the whole project.
- Moving or renaming of files and directories are
not versioned. - No versioning of symbolic links.
- Limited support for Unicode text files and
non-ASCII filenames.
10Source Safe
- Easy-to-use solution for developers who want a
simple way to manage changes - to their source code
- Can be seamlessly migrated to Team Foundation
Server, the central component of - the new Visual Studio Team System
- Combines the security of SQL Server 2005, Active
Directory, and IIS to form a - complete collaboration platform.
- Provide an application lifecycle management
solution for the broad spectrum of - Microsoft customers.
- Unicode and XML Support
- Remote access over HTTP
- Backwards compatibility
- Increased capacity to 4GB
- Migration path to Team Foundation Server
11Source Safe
- Single-user system can be set up
- without installing services
- When backing up you can get away
- with simply compressing a single
- directory tree
- For multi-user, it lacks features,
- such as support for atomic
- commits of multiple files
- Easy to use
- Integration with other Microsoft
- development solution
- Suitable for small or medium
- scale project
- Support from MSDN
- The system is heavy and slow
- If a client machine crashes in the
- middle of updating such file,
- the file could become corrupted
- Only support Windows system
12FtpVC
- ftpVC is a serverless version control system for
- Windows 98/Me/NT/2000/XP/2003, which allows
joint software - development using Internet FTP connections
- Price 50 for one license (very inexpensive
compared to some others)
no VC server needed
can get, check out, check in, undo check out, and
label files
Maintains file revision history
13FtpVC
Allows to set watch for a specific file
Shows differences between different file versions
Supports SMTP servers with authentication
Supports multiple version control projects
Provides recursive file management
Allows compression and encryption of remote files
Includes standard FTP client features
14Conclusion
- Version control is the management of multiple
versions of the same - unit of information
- Without version control, the developers may
easily end up overwriting - each other's work.
- There are 3 storage models to handle versions,
which are file locking, - version merging, and Distributed Version
Control
- There are some products for supporting version
control such as CVS, - SourceSafe and FTPVC.
- CVS is unix-based server-client architecture
system, whereas SourceSafe - is easy to use system supporting only
windows. FTPVC doesnt use a - server because it uses ftp internet protocol.