Você está na página 1de 20

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? Whats the different between certain versions?

No Version Control (Cont.)


Banking System
David & Bob working on the same project
Working on User Management Working on Loan Management

David The latest working version?

Bob

How to combine these two version into one working program? Who is responsible on keeping the latest 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


Subversion Repository

David Working Copy


Schema file:// http:// https:// svn:// svn+ssh:// Access Method Direct repository access on local or network drive.

Bob Working Copy

Access via WebDAV protocol to Subversion-aware Apache server. Same as http://, but with SSL encryption. Unauthenticated TCP/IP access via custom protocol to a svnserve server. 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.

Resources

A Visual Guide to Version Control. Source control how to. SVN best practice. 5 SVN best practices. OSCON: Subversion Best Practices. Version control with subversion.

L/O/G/O

L/O/G/O

Você também pode gostar