SVN - SUBVERSION
BY:
KRASHNA SARASWAT
CONTENTS
• INTRODUCTION
• HISTORY
• VERSION CONTROL SYSTEM
• GOALS OF SVN
• HW/SW REQUIREMENTS
• FEATURES
• LIFE CYCLE
• IMPLEMENTATION
• LIMITATIONS
INTRODUCTION
• Subversion is a free/open source version control system (VCS). That is, Subversion
manages files and directories, and the changes made to them, over time. This allows you to
recover older versions of your data or examine the history of how your data changed.
• Subversion can operate across networks, which allows it to be used by people on different
computers. At some level, the ability for various people to modify and manage the same set
of data from their respective locations fosters collaboration.
• Some version control systems are also software configuration management (SCM) systems.
These systems are specifically tailored to manage trees of source code and have many
features that are specific to software development.
HISTORY
• Apache Subversion which is often abbreviated as SVN, is a software
versioning and revision control system distributed under an open source
license. Subversion was created by CollabNet Inc. in 2000, but now it is
developed as a project of the Apache Software Foundation, and as such is
part of a rich community of developers and users.
WHAT IS VERSION CONTROL SYSTEM?
• Version Control System (VCS) is a software that helps software developers
to work together and maintain a complete history of their work.
• Version control is a system that records changes to a file or set of files over
time so that you can recall specific versions later. For the examples in this
book you will use software source code as the files being version
controlled, though in reality you can do this with nearly any type of file on a
computer.
• SVN is a example of version control system.
GOALS OF A VERSION CONTROL
SYSTEM.
• Allow developers to work simultaneously.
• Do not overwrite each other’s changes.
• Maintain history of every version of everything.
FEATURES
• Commits as true atomic operations (interrupted commit operations in CVS would cause
repository inconsistency or corruption).
• Renamed/copied/moved/removed files retain full revision history.
• The system maintains versioning for directories, renames, and file metadata (but not for
timestamps). Users can move and/or copy entire directory-trees very quickly, while retaining
full revision history..
• Costs proportional to change size, not to data size.
• open source licensed .
• Merge tracking – Merges between branches will be tracked,
• Language bindings for C#, PHP, Python, Perl, Ruby, and Java.
HW / SW
REQUIREMENTS
HARDWARE REQUIREMENT:
• setup running windows server on a virtual machine
• 512MB RAM provisioned and enough disk space.
SOFTWARE REQUIREMENT :
• Server OS,
• All modern flavors of Unix, Win32, BeOS, OS/2, MacOS X..
SVN – LIFE CYCLE
• Create Repository: The repository is a central place where developers store all their work.
Repository not only stores files, but also the history about changes. Which means it
maintains a history of the changes made in the files.
• Checkout : 'Checkout' operation is used to create a working copy from the repository.
Working copy is a private workplace where developers do their changes, and later on,
submit these changes to the repository.
• Update: As the name suggests, 'update' operation is used to update working copy. This
operation synchronizes the working copy with the repository. As repository is shared by all
the teams other developers can commit their changes and your working copy becomes
older.
• Perform Changes: After the checkout, one can do various operations to perform changes.
Edit is the most common operation. One can edit the existing file to add/remove contents
from the file.
CONTINUED..
• Review Changes : When you check out the working copy or update the working copy, then
your working copy is completely synchronized with the repository. And it is a good practice to
review your changes before the 'commit' operation.
• Fix Mistakes: Let us suppose one has made changes to his working copy, but now, he wants
to throw away these changes. In this situation, 'revert' operation will help. Revert operation
reverts the modifications that have been made to the working copy.
• Resolve Conflicts : Conflicts can occur at the time of merging. 'Merge' operation
automatically handles everything that can be done safely. Everything else is considered as
conflict.
• Commit Changes :'Commit' operation is used to apply changes from the working copy to the
repository. This operation modifies the repository and other developers can see these
changes by updating their working copy.
IMPLEMENTATION
• Open source application – download it from
http://tortoisesvn.net/downloads
• After the installation a new
option appears in the menu when
you right click on a folder.
How to checkout?
• Right click in the folder you want to check out into
• Select SVN Checkout.
• URL of repository:
• http://svn.cs.wayne.edu/svn/csc4111w11
UPDATE AND COMMIT
HOW TO UPDATE:
• Right click on the file, folder or project
• you want to update and choose SVN
• Update
HOW TO COMMIT:
• Once you have added, deleted, or changed
• files or directories, you can then commit those
• changes to the repository.
• Right click on the file, folder or project you
• want to update and choose SVN Commit…
RULES ON USING
SVN
• Carefully test your code before committing
• Before committing, perform an update on the whole source code directory, and then
retest
• Always commit only the individual files you modified, not the entire directory
• When adding new files to the existing source code, always perform SVN Add and
then SVN Commit
• When you have conflicts, contact the teammates which modified that file and try to
solve the conflicts together to avoid damages.
• You will be responsible for any changes submitted using your username and password!
• Do not check out other projects than the one assigned to you! It can be easily verified
LIMITATIONS OF SVN
• Subversion stores additional copies of data on the local machine, which can
become an issue with very large projects or files, or if developers work on multiple
branches simultaneously.
• Subversion does not store the modification times of files. As such, a file checked out
of a Subversion repository will have the 'current' date and a file checked into the
repository will have the date of the check-in.
• Subversion stores additional copies of data on the local machine, which can
become an issue with very large projects or files, or if developers work on multiple
branches simultaneously.
THANK YOU…!!!
ANY QUERY??????????????

SVN

  • 1.
  • 2.
    CONTENTS • INTRODUCTION • HISTORY •VERSION CONTROL SYSTEM • GOALS OF SVN • HW/SW REQUIREMENTS • FEATURES • LIFE CYCLE • IMPLEMENTATION • LIMITATIONS
  • 3.
    INTRODUCTION • Subversion isa free/open source version control system (VCS). That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed. • Subversion can operate across networks, which allows it to be used by people on different computers. At some level, the ability for various people to modify and manage the same set of data from their respective locations fosters collaboration. • Some version control systems are also software configuration management (SCM) systems. These systems are specifically tailored to manage trees of source code and have many features that are specific to software development.
  • 4.
    HISTORY • Apache Subversionwhich is often abbreviated as SVN, is a software versioning and revision control system distributed under an open source license. Subversion was created by CollabNet Inc. in 2000, but now it is developed as a project of the Apache Software Foundation, and as such is part of a rich community of developers and users.
  • 5.
    WHAT IS VERSIONCONTROL SYSTEM? • Version Control System (VCS) is a software that helps software developers to work together and maintain a complete history of their work. • Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. For the examples in this book you will use software source code as the files being version controlled, though in reality you can do this with nearly any type of file on a computer. • SVN is a example of version control system.
  • 6.
    GOALS OF AVERSION CONTROL SYSTEM. • Allow developers to work simultaneously. • Do not overwrite each other’s changes. • Maintain history of every version of everything.
  • 7.
    FEATURES • Commits astrue atomic operations (interrupted commit operations in CVS would cause repository inconsistency or corruption). • Renamed/copied/moved/removed files retain full revision history. • The system maintains versioning for directories, renames, and file metadata (but not for timestamps). Users can move and/or copy entire directory-trees very quickly, while retaining full revision history.. • Costs proportional to change size, not to data size. • open source licensed . • Merge tracking – Merges between branches will be tracked, • Language bindings for C#, PHP, Python, Perl, Ruby, and Java.
  • 8.
    HW / SW REQUIREMENTS HARDWAREREQUIREMENT: • setup running windows server on a virtual machine • 512MB RAM provisioned and enough disk space. SOFTWARE REQUIREMENT : • Server OS, • All modern flavors of Unix, Win32, BeOS, OS/2, MacOS X..
  • 9.
    SVN – LIFECYCLE • Create Repository: The repository is a central place where developers store all their work. Repository not only stores files, but also the history about changes. Which means it maintains a history of the changes made in the files. • Checkout : 'Checkout' operation is used to create a working copy from the repository. Working copy is a private workplace where developers do their changes, and later on, submit these changes to the repository. • Update: As the name suggests, 'update' operation is used to update working copy. This operation synchronizes the working copy with the repository. As repository is shared by all the teams other developers can commit their changes and your working copy becomes older. • Perform Changes: After the checkout, one can do various operations to perform changes. Edit is the most common operation. One can edit the existing file to add/remove contents from the file.
  • 10.
    CONTINUED.. • Review Changes: When you check out the working copy or update the working copy, then your working copy is completely synchronized with the repository. And it is a good practice to review your changes before the 'commit' operation. • Fix Mistakes: Let us suppose one has made changes to his working copy, but now, he wants to throw away these changes. In this situation, 'revert' operation will help. Revert operation reverts the modifications that have been made to the working copy. • Resolve Conflicts : Conflicts can occur at the time of merging. 'Merge' operation automatically handles everything that can be done safely. Everything else is considered as conflict. • Commit Changes :'Commit' operation is used to apply changes from the working copy to the repository. This operation modifies the repository and other developers can see these changes by updating their working copy.
  • 11.
    IMPLEMENTATION • Open sourceapplication – download it from http://tortoisesvn.net/downloads • After the installation a new option appears in the menu when you right click on a folder. How to checkout? • Right click in the folder you want to check out into • Select SVN Checkout. • URL of repository: • http://svn.cs.wayne.edu/svn/csc4111w11
  • 12.
    UPDATE AND COMMIT HOWTO UPDATE: • Right click on the file, folder or project • you want to update and choose SVN • Update HOW TO COMMIT: • Once you have added, deleted, or changed • files or directories, you can then commit those • changes to the repository. • Right click on the file, folder or project you • want to update and choose SVN Commit…
  • 13.
    RULES ON USING SVN •Carefully test your code before committing • Before committing, perform an update on the whole source code directory, and then retest • Always commit only the individual files you modified, not the entire directory • When adding new files to the existing source code, always perform SVN Add and then SVN Commit • When you have conflicts, contact the teammates which modified that file and try to solve the conflicts together to avoid damages. • You will be responsible for any changes submitted using your username and password! • Do not check out other projects than the one assigned to you! It can be easily verified
  • 14.
    LIMITATIONS OF SVN •Subversion stores additional copies of data on the local machine, which can become an issue with very large projects or files, or if developers work on multiple branches simultaneously. • Subversion does not store the modification times of files. As such, a file checked out of a Subversion repository will have the 'current' date and a file checked into the repository will have the date of the check-in. • Subversion stores additional copies of data on the local machine, which can become an issue with very large projects or files, or if developers work on multiple branches simultaneously.
  • 15.