version control with subversion

Post on 06-May-2015

4.432 Views

Category:

Education

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

L/O/G/O

samnang.chhun@gmail.com

About Me

• Blog (http://tech.wowkhmer.com)

• Twitter (http://twitter.com/samnangchhun)

• Yoolk Inc. (http://www.yoolk.com)

• Rails Developer

• .NET Developer

About this presentation

• Concepts of Version Control

• Subversion

• Daily Use Guide Demo

What is Version Control?

“Revision control (also know as version

control, source control or (source) code

management (SCM)) is the management

of changes to documents, programs, and

other information stored as computer

files.” (source: Wikipedia:RevisionControl)

No Version Cotrol

• Which version works?

• Which versions have

bug/feature X?

• What’s the different

between certain

versions?

David & Bob working on the same project

No Version Control (Cont.)

• How to combine these

two version into one

working program?

• Who is responsible on

keeping the latest

version?David Bob

Banking System

Working on User

Management

Working on Loan

Management

The latest working version?

Why need Version Control?

• Backup & Restore

• Synchronization

• Short-Term Undo

• Long-Term Undo

• Track Changes

• Track Owner

• Branching & Merging

Types of Version Control

Centralized

• Client-Server System

• Repository stored on server

Decentralized

• Full decentralized, no server

• Each user has a copy of the full repository

Available Tools

• CSV

• Subversion (svn)

• Microsoft Visual SourceSafe

• SVK

• Barzzar

• Mercurial (hg)

• Git

• etc…

Subversion (SVN)

• Cross Platform / Open Source / Free.

• Central repository.

• Atomic commit.

• Availability of free client software / Plugin

for most known IDEs.

• Most of Open source hosting sites support

it. (e.g. codeplex, google code, and etc…)

The Working Cycle

SubversionRepository

David BobWorking Copy Working Copy

Schema Access Method

file:// Direct repository access on local or network drive.

http:// Access via WebDAV protocol to Subversion-aware Apache server.

https:// Same as http://, but with SSL encryption.

svn:// Unauthenticated TCP/IP access via custom protocol to a svnserve server.

svn+ssh:// authenticated, encrypted TCP/IP access via custom protocol to a svnserve server.

Subversion – Architecture

The revision numbers

0 1 2 3

Not just file management

but

management of changes

Basic SVN Terminology

• Repository (repo): The database storing the

files.

• Working Copy: Your local directory of files,

where you make changes.

• Revision: What version a file is on (v1, v2, v3,

etc.).

• Check out: Download a file from the repo.

• Check in: Upload a file to the repository (if it has

changed). The file gets a new revision number,

and people can “check out” the latest one.

Basic SVN Terminology

(Cont.)

• Update: Synchronize your files with the latest

from the repository. This lets you grab the latest

revisions of all files.

• Head: The latest revision in the repo.

• Changelog/History: A list of changes made to a

file since it was created.

• Revert: Throw away your local changes and

reload the latest version from the repository.

Basic tools for SVN

• Client

– TortoiseSVN

– VisualSVN (commercial)

– AnkhSVN

• Server

– VisualSVN Server

L/O/G/O

Best Practices

• Comment, Comment, Comment

• Update and TEST before Commit

• Work from your own local copy

• Commit small autonomous changes

• Validate the files you are committing, you

actually changed

• Keep in touch with the repository.

• Watch for Conflicts

• Always group your check-in logically.

L/O/G/O

L/O/G/O

top related