Thursday, March 6, 2014

SVN

SVN:

Is software that helps software developers to work together and also maintain complete history of work
- allow developers to work simultaneously
- do not overwrite each others changes
- maintain history of every version of everything

Version control of two types:

- centralized version control system(CVCS) and
- distributed/decentralized version control system

Repository:

- heart of any version control system.
- central system where developer store all their work
- repository stores files and history

Trunk:

- directory where all main development happens and is usually checked by developers to work on project

Tags:

- store named snapshots of project.

Branches:

- branch operation is used to create another line of development
- used to fork off development in two different directions
- when you release version 5.0, you might want to create a branch so that development of 6.0 features
can be kept seperate from 5.0 bug fixes.

Working copy:

- snapshot of repository
- repository is shared by all team.
- each developer checks out working copy
- working copy is private workplace where developer can do their work within isolated from rest of team

Commit changes:

- storing changes from private workplace to central server.
- after commit, changes are made available to all team.

Lifecycle of SVN:

- Create repository
- Checkout: create working copy from repository.
- Update: update working copy. this operation synchronizes working copy with repository
- perform changes: edit is most common operation.
- review changes: one can use diff operation to view details of the modifications made to working copy.
- fix mistakes: revert to throw away the changes.
It is possible to revert one or more files/directories.
- resolve conflicts: conflicts occur at time of merging. merge operation handles ething that can be done safely.
- commit changes: used to apply changes from working copy to the repository.
SVN provides checkout command to checkout working copy from repository.

[tom@CentOS ~]$ svn checkout http://svn.server.com/svn/project_repo --username=tom

No comments:

Post a Comment