Version Control Systems - PowerPoint PPT Presentation

1 / 14
About This Presentation
Title:

Version Control Systems

Description:

VCS system helps us to track the changes made by these developers. These systems very helpful to merge the works of ... http://subclipse.tigris.org/install.html ... – PowerPoint PPT presentation

Number of Views:19
Avg rating:3.0/5.0
Slides: 15
Provided by: karat
Category:

less

Transcript and Presenter's Notes

Title: Version Control Systems


1
Version Control Systems
  • Version Control System enables different
    programmers to work on concurrently on a set of
    files or directories.
  • VCS system helps us to track the changes made by
    these developers.
  • These systems very helpful to merge the works of
    these developers into a single work.
  • They can help us to restore all of the old
    versions of files and directories.

2
Why We Need VCS?
  • Data Integrity Old revisions in repositories
  • Productivity Integrating the work of multiple
    developers
  • Accountability Who has made the modifications
    and when
  • Branching Old versions need to be supported
    while new version is going on. Merge changes from
    one branch to another.
  • Record Keeping Logs about all the changes made
    in project can be helpful.

3
Why We Need VCS?
  • Distribution of Work Version control can make
    dealing with distributed development easier, by
    automating much of the workload of exchanging and
    merging the work of different developers.
  • Rapid Development Codes in repositories can be
    useful for other projects.

4
Basic Elements of VCS
  • The Repository Directory structure on a server
    with each versioned file stored separately.
  • Working Directory Checkout from repositories
    copy of projects from repositories allows us
    editing, testing changes during development
    process. (commit, update)
  • Revisions The history of changes to the project
    over time.
  • Log On commit, update, merge, delete ... a
    message to log what change is made.

5
Basic Elements of VCS
  • Tagging Frees developers from such as revision
    numbers or dates. It is easy to go back at a
    later date to search out the cause of a bug.
  • Branching Each branch can be worked on
    independently, and changes committed to one
    branch will not affect any other branches of the
    project.
  • Locking The developer locks a versioned file
    when beginning to make changes. While the file is
    locked, no other developer will be allowed to
    make any changes.

6
Subversion(SVN)
  • The core of Subversion is a set of libraries with
    a well-documented open API.
  • This API allows developers to write custom
    clients for Subversion, integrate it into another
    tool, provide a GUI.
  • Subversion has much larger feature set and
    commands.

7
Features Of Subversion
  • Subversion uses client-server architecture
  • Central repository on server and clients check
    out local working copies.
  • We can modify anything on working copies then
    changes between repository and working copy
    merged. Modified version is committed to the
    repository.
  • Repository Flexibility You can move, rename, and
    copy files and directories as much as you like
    without any worry that you will lose your history
    or corrupt older revisions.

8
Atomic Commits
  • Atomic Commits Subversion uses transactions
    whenever it modifies the database.
  • When a commit starts, Subversion marks the
    current state of the database, then makes its
    modifications.
  • If a crash interrupts the commit, there is no
    risk that the database will be corrupted.

9
Cheap Copies
  • When a developer uses the svn copy command,
    Subversion does not make a copy of data contained
    in those files.
  • It just marks the location of the new file and
    links it back to the history of the original
    file, up to the point where the copy is made.
  • If changes are applied to the copy, a new path of
    revision is created for the copy,independent of
    subsequent revisions applied to the original file.

10
Binary Files
  • CVS doesnt store differences to versioned binary
    files. Instead, it just stores an entire new copy
    of the file whenever a binary file is committed.
  • Subversion improves on this by using a binary
    difference function for all files, which allows
    binary files to be versioned the same as text
    files.
  • Subversion provides complete copies of both
    versions of the file, which allows the user to
    easily use an external editor to manually merge
    the conflicted file.

11
Storage and Network Protocol
  • The Subversion storage uses individual files for
    each revision in the repository.
  • When you commit revision 3529, there will be a
    file named 3529 created, which holds all of the
    changes for that revision.
  • SVN-specific network protocol that requires a
    dedicated server and open port.
  • Served over HTTP via Apache, there is no need to
    open a special port on the server.

12
Data Transfer
  • It only transfers file differences both from
    client to server and from server to client unlike
    CVS.
  • It stores a full copy of the working directory
    from the last update, to allow the user to make
    comparisons with local changes without contacting
    the server.

13
Limitations Of Subversion
  • Locking Subversion currently has no support for
    file locking to prevent more than one person from
    working on a particular file at a given point in
    time.
  • Distributed Repository Subversion does not
    currently have any support for distributed
    repositories, but there is a secondary project,
    called SVK.
  • Merge History and Visualization Problem ???

14
SVN, Subclipse Installation And References
  • http//www.blendedtechnologies.com/setting-up-subv
    ersion-on-ubuntu/11
  • http//subclipse.tigris.org/install.html
  • Using The Subversion Version Control System in
    Development Projects William Nagel
Write a Comment
User Comments (0)
About PowerShow.com