SlideShare a Scribd company logo
Subversion
                   Document Version Control with Subversion




tags: Version Control System, SVN, Introduction   Sitdhibong Laokok : goto.champ@gmail.com
License



Sitdhibong Laokok : goto.champ@gmail.com
Agenda

• Advantage
• Commons Vocabulary
• Version Control System (VCS)
• Subversion in Actions
Agenda

• Advantage
• Commons Vocabulary
• Version Control System (VCS)
• Subversion in Actions
Advantage
• Backup and Restore
• Synchronization
• Short-term and Long-term undo
• Track Change and Ownership
• Sandboxing
• Branching and Merging
Agenda

• Advantage
• Commons Vocabulary
• Version Control System (VCS)
• Subversion in Actions
Commons Vocabulary
• Basic Setup
  “Repository(repo), Server, Client,Working Copy/Working Set,Trunk/
  Main,Baseline”

• Basic Actions
  “Add, Revision, Head, Check out, Check in/Commit, Changelog/
  History, Update/Sync, Revert”

• Advanced Actions
  “Branch, Diff/Change/Delta, Merge(patch), Conflict, Resolve, Locking,
  Breaking the lock”
Basic Setup
Repository (repo)
  “The database stroring the files”
Server
  “The computer storing the repository”
Client
  “The computer connecting to the repo”
Basic Setup

Working Set / Working Copy
  “Your local directory of files, where you make
  change”
Trunk / Main
  “The “Primary” location for code in the repo.”
Basic Setup

Baseline
  “An Approved revision (or version number) of
  a document or source file from which
  subsequent changes can be made”
Basic Actions
Add
 “Put a file into the repo ‘for the first time’ ”
Revision
 “What version a file is on”
Head
 “The latest revision in repo”
Basic Actions
Check out
 “Download a file from the repo”
Check in / Commit
 “Upload a file into the repo.The file gets a
 new revision number”
Checkin Message
 “A short message to describe what was
 changed”
Basic Actions
Changelog / History
 “A list of change made to a file since it was
 created.”
Update / Sync
 “Synchronize your file with the latest from the
 repository”
Basic Actions


Revert
 “Throw away your local changed and reload
 the latest version from repository”
Advanced Actions
Branch
  “Create a separate copy of a file/folder for
  private use (bug fixing, testing, etc.)”
Diff / Change / Delta
  “Finding the differences between two files”
Merge (or patch)
  “Apply the changes from one file (or branch)
  to another file or trunk”
Advanced Actions
Conflict
 “When pending changes to a file contradict
 each other (both cannot be applied)”
Resolve
 “Fixing the changes that contradict each
 other and checking the correct version”
Advanced Actions

Locking
  “ ‘Taking Control’ of a file so nobody else can
  edit until you unlock it.”
Breaking the lock
  “Forcibly unlocking file that was locked”
Agenda

• Advantage
• Commons Vocabulary
• Version Control System (VCS)
• Subversion in Actions
Version Control System

• Git - Linux Kernel, X.org
• Subversion - Apache Software Foundation,
  PHP, Google Code
• Mercurial - Mozilla projects, NetBeans,
  OpenJDK
Repository

    Project_name
      !   branches
      !   tags
      !   trunk


Recommend repository structure
Repository
         Repository



           X
 Write                  Read
               Read



X          X          X
Client     Client     Client
Versioning Model

• File Sharing
• Lock-Modify-Unlock
• Copy-Modify-Merge
File Sharing

                  X
               Repository




    X                        X
     Pat                      Daniel



Pat & Daniel read code from repository
File Sharing

                  X
               Repository




    X'                       X''
     Pat                      Daniel



Pat & Daniel make change with there file
File Sharing

                        X'
                     Repository




      X'                             X''
        Pat                           Daniel



           Pat write his file to repository.
So, current version in the repository come from Pat
File Sharing

                      X''
                    Repository




      X'                             X''
       Pat                            Daniel



           Daniel do the same like Pat.
But everything from Pat is overwrite by Daniel file
Lock-Modify-Unlock

                         X
        Read                       Could not Read
                      Repository
               Lock


       X                             X
        Pat                          Daniel




 Pat start with read file from repository and lock it
Lock-Modify-Unlock

                            X'
        Write                            Read
                         Repository
                Unlock


      X'                              X'
       Pat                             Daniel



 Pat write his changes to repository and unlock it
Copy-Modify-Merge

                     X
   Read                              Read
                  Repository




     X                              X
      Pat                            Daniel


 Pat and Daniel boat copy file from repository
   to his private directory (Working Copy)
Copy-Modify-Merge

                       X
                    Repository




      X'                            X''
       Pat                           Daniel



Pat and Daniel make changes in there working copy
Copy-Modify-Merge

                 X''
                                  Write
               Repository




  X'                            X''
   Pat                           Daniel



   Daniel write his file to repository
Copy-Modify-Merge

                    X''
 Could not write
                  Repository




    X'                             X''
     Pat                           Daniel


    Pat could not write file to repository
      because his version is out-of-date
Copy-Modify-Merge

   Read
                  X''
                Repository




  X' X''                         X''
   Pat                            Daniel



  Solution: Pat read file from repository
Copy-Modify-Merge

                      Write
                                      X*
                                   Repository




                     X*                             X''
                      Pat                           Daniel


Solution: Pat merge his file in working copy and new version from Repository then
                                write it to repository
Agenda

• Advantage
• Commons Vocabulary
• Version Control System (VCS)
• Subversion in Actions
Subversion in Action

Require
• TortoiseSVN - Subversion Client
Optional
• VisualSVN Server - Subversion Server
Lab I: Check out


Objective
• To understand how to check out file from
  repository
Lab I: Check out




Before start you need to install TortoiseSVN
Lab I: Check out




Right-Click menu will show you like this if you already
                        install
Lab I: Check out




    Create a working copy directory
(empty directory in the location you want)
Lab I: Check out




Right-click then select “SVN Checkout...”
Lab I: Check out




Change “URL of repository” to your repository destination
Lab I: Check out




   Certificate Warning
Lab I: Check out




Authentication Required if the repository is not public
Lab I: Check out




   Check out success
Lab II: Add


Objective
• To understand how to ‘add’ new file or folder
  to repository
Lab II: Add




 Create new file or directory in your working copy, the
Symbol ‘?’ in front of folder show you this file is unknown
Lab II: Add




Press Right-Click at file you want to add to repository, and
                     choose ‘SVN Add”
Lab II: Add




  Add dialog
Lab II: Add




                Add complete
REMEMBER YOUR FILE DOES NOT PUBLISH TO REPO
Lab II: Add




Commit complete: last line show you repository HEAD
Lab III: Update
Objective
• To understand how to ‘update’ file in SVN
• To solve problem when ‘conflict’ found
Note
• This is the best practice before you commit
  file to repository for avoid conflict
Lab III: Update




Right-Click in working copy, then choose “SVN Update”
Lab III: Update




This dialog shown you there are update available from repo
Lab III: Update




New file from repository
Lab III: Update




New file from repository [check out again]
Lab III: Update




 Make some changes to ‘note.odt’
you’ll see this in your working copy
Lab III: Update




Update before commit your file
Lab III: Update




   Conflict found!!!
Lab III: Update




 Use ‘Resolved’ to solved this problem
[Right-Click: TortoiseSVN > Resolved...]
Lab III: Update




Resolve dialog shown you the list of conflict file
Lab III: Update




Conflict list: you can ‘Accept’ or ‘Reject’ changes here
Lab III: Update




     Resolved
Lab III: Update




Content in file after conflict is resolved
Lab IV: Commit


Objective
• To understand how to commit file to
  repository
Lab IV: Commit




Press Right-Click in working copy
  then choose ‘SVN Commit...’
Lab IV: Commit




Commit dialog: the short description might helpful to you
                      co-worker
Lab IV: Commit




Commit complete: last line show repository HEAD
Lab V: Diff

Objective
• To understand and specify what difference
  between 2 revision
Note
• Diff stand for ‘Difference’
Lab V: Diff




Press Right-Click at file you want to see diff,
     then choose ‘TortoiseSVN > Diff’
Lab V: Diff




  Different list
Lab V: Diff




   diff with previous version list
‘TortoiseSVN > Diff with previous’
Lessen VI: Retrieve Log


Objective
 • To understand how to get change log in
   project
Lessen VI: Retrieve Log




Press Right-Click in working directory, then choose
            ‘TortoiseSVN > Show Log’
Lessen VI: Retrieve Log




      Log Message Dialog
References
Subversion
  http://subversion.tigris.org/
tortoiseSVN
  http://tortoisesvn.tigris.org/
Version Control with Subversion
  http://svnbook.red-bean.com
References

OOoSVN
 http://extensions.services.openoffice.org/
 project/OOoSVN
VisualSVN Server
 http://www.visualsvn.com/
Introduce to SVN

More Related Content

PPT
Subversion client
PPT
Totalsvn Usage And Administration By Gopi
PPT
Introduction to Subversion and Google Project Hosting
PPT
Subversion workshop
ODP
Subversion User Guide
PPT
Subversion
ODP
Svn Basic Tutorial
Subversion client
Totalsvn Usage And Administration By Gopi
Introduction to Subversion and Google Project Hosting
Subversion workshop
Subversion User Guide
Subversion
Svn Basic Tutorial

What's hot (20)

ODP
Nguyễn Vũ Hưng: Subversion best practices
PDF
Introduction to Subversion
PDF
Version Control with SVN
PPTX
Subversion on-the-fly replication
KEY
SVN Best Practices
PPTX
SVN Best Practices
PPT
SVN Tool Information : Best Practices
PPTX
Getting Started With Subversion
PDF
Version Control With Subversion
PDF
Digital Fabrication Studio 0.3 Information
PDF
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
ODP
Pipeline based deployments on Jenkins
PDF
Digital Fabrication Studio v.0.2: Information
PPTX
SVN Tutorial
PDF
Docker & ci
PDF
Version Control & Git
PDF
DCSF19 Dockerfile Best Practices
PPTX
CI/CD on Android project via Jenkins Pipeline
ODP
An introduction to SVN
PDF
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
Nguyễn Vũ Hưng: Subversion best practices
Introduction to Subversion
Version Control with SVN
Subversion on-the-fly replication
SVN Best Practices
SVN Best Practices
SVN Tool Information : Best Practices
Getting Started With Subversion
Version Control With Subversion
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
Pipeline based deployments on Jenkins
Digital Fabrication Studio v.0.2: Information
SVN Tutorial
Docker & ci
Version Control & Git
DCSF19 Dockerfile Best Practices
CI/CD on Android project via Jenkins Pipeline
An introduction to SVN
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
Ad

Viewers also liked (7)

PDF
Subversion Best Practices
PPT
SVN Usage & Best Practices
PPT
Subversion Overview
PPTX
SVN Basics
KEY
Git para quem vem do SVN
PDF
PDF
Introduction to Bootstrap
Subversion Best Practices
SVN Usage & Best Practices
Subversion Overview
SVN Basics
Git para quem vem do SVN
Introduction to Bootstrap
Ad

Similar to Introduce to SVN (20)

PPTX
Random House
PPT
Subversion Saves The Day
PDF
Difference between team foundation server and subversion
PPTX
Subversion
PDF
Git your life for fun & profit
PDF
Git your life for fun & profit
PPTX
Subversion last minute survival crash course
PPTX
Presentacio.pptx
PPTX
SVN Information
ODP
Burlington, VT PHP Users Group Subversion Presentation
PPTX
DevTalk: Introducing Helix- A New And Better DVCS
PPTX
Subversion
PDF
Make an Instant Website with Webhooks
PPT
Subversion Admin
PPTX
Source Code Management Slides
PPTX
Source Control 101
PPT
version controlling in software development
PDF
Mining Component Repositories for Installability Issues
PPT
subversion.ppt
PDF
Apache zeppelin, the missing component for the big data ecosystem
Random House
Subversion Saves The Day
Difference between team foundation server and subversion
Subversion
Git your life for fun & profit
Git your life for fun & profit
Subversion last minute survival crash course
Presentacio.pptx
SVN Information
Burlington, VT PHP Users Group Subversion Presentation
DevTalk: Introducing Helix- A New And Better DVCS
Subversion
Make an Instant Website with Webhooks
Subversion Admin
Source Code Management Slides
Source Control 101
version controlling in software development
Mining Component Repositories for Installability Issues
subversion.ppt
Apache zeppelin, the missing component for the big data ecosystem

More from Sitdhibong Laokok (15)

PDF
แม่แบบและแบบบันทึกสำหรับกระบวนการออกแบบรายละเอียดซอฟต์แวร์
PDF
คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์
PDF
กระบวนการออกแบบรายละเอียดซอฟต์แวร์
PDF
การนิยามและการปรับปรุงกระบวนการออกแบบรายละเอียดซอฟต์แวร์
PDF
Software Metrics: Paper Presentation
PDF
ข้อเสนอโครงการ.ระบบจัดการส่งดอกไม้ของฮานะ
PDF
SNA: Information Sharing Behavior
PDF
Seminar Slide: Investigating dependencies in software requirements for change...
PDF
Git installation
PDF
New M-Culture + Elementary WordPress
PDF
WordPress Theme Development Short Manual
PDF
Introduction to WordPress Theme Development
PDF
JAXB: Create, Validate XML Message and Edit XML Schema
PDF
Software Architecture: Test Case Writing
PDF
พระราชบัญญัติ ว่าด้วยการกระทำความผิดเกี่ยวกับคอมพิวเตอร์ พ.ศ. 2550
แม่แบบและแบบบันทึกสำหรับกระบวนการออกแบบรายละเอียดซอฟต์แวร์
คู่มือประกอบกระบวนการออกแบบรายละเอียดซอฟต์แวร์
กระบวนการออกแบบรายละเอียดซอฟต์แวร์
การนิยามและการปรับปรุงกระบวนการออกแบบรายละเอียดซอฟต์แวร์
Software Metrics: Paper Presentation
ข้อเสนอโครงการ.ระบบจัดการส่งดอกไม้ของฮานะ
SNA: Information Sharing Behavior
Seminar Slide: Investigating dependencies in software requirements for change...
Git installation
New M-Culture + Elementary WordPress
WordPress Theme Development Short Manual
Introduction to WordPress Theme Development
JAXB: Create, Validate XML Message and Edit XML Schema
Software Architecture: Test Case Writing
พระราชบัญญัติ ว่าด้วยการกระทำความผิดเกี่ยวกับคอมพิวเตอร์ พ.ศ. 2550

Recently uploaded (20)

PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
sap open course for s4hana steps from ECC to s4
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPT
Teaching material agriculture food technology
PDF
Unlocking AI with Model Context Protocol (MCP)
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Reach Out and Touch Someone: Haptics and Empathic Computing
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
MIND Revenue Release Quarter 2 2025 Press Release
Building Integrated photovoltaic BIPV_UPV.pdf
The AUB Centre for AI in Media Proposal.docx
Programs and apps: productivity, graphics, security and other tools
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Empathic Computing: Creating Shared Understanding
NewMind AI Weekly Chronicles - August'25 Week I
Review of recent advances in non-invasive hemoglobin estimation
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Digital-Transformation-Roadmap-for-Companies.pptx
sap open course for s4hana steps from ECC to s4
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Approach and Philosophy of On baking technology
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Teaching material agriculture food technology
Unlocking AI with Model Context Protocol (MCP)

Introduce to SVN

Editor's Notes

  • #7: - Backup and Restore: VCS จะทำงานโดยเก็บเอาแต่ล่ะ version ทำเป็น history ไว้ จึงช่วยเรื่องการจัดการเรืื่องการ backup และ restore งานตรง version ที่เราต้องการได้ - Synchronization: ช่วยให้คนที่อยู่ใน Project ที่ทำงานร่วมกัน ได้ข้อมูลที่สอดคล้องกันทั้งหมด - Short-term and Long-term undo - short-term undo: หากไม่ต้องการเวอร์ชั่นที่ทำอยู่ หรือเกิดข้อผิดพลาดบางอย่างก็กลับไปเวอร์ชั่นที่ต้องการได้ทันที - long-term undo: ยกตัวอย่างเช่นถ้าปรับแก้ไปนานแล้วแต่พบว่ามันเป็นบั๊ก ก็สามารถกลับไปเวอร์ชั่นที่เริ่มเกิดนั้นและดูได้ว่าส่วนไหนที่เปลี่ยนแปลงแล้วส่งผลกระทบทำให้เกิดข้อผิดพลาดดังกล่าว - Track Change and Ownership: สามารถติดตามการเปลี่ยนแปลงในแต่ละเวอร์ชั่น และคนที่แก้ไขได้ - Sandboxing: การใช้งาน vcs ก็คือจะให้คนที่ร่วมโปรเจ็คมาดึงเอาข้อมูลจากตรงกลางไปใช้ เมื่อเสร็จแล้วจึงค่อยส่งกลับคืนไปยังต้นฉบับ ดังนั้นเมื่อมีแก้ไขจะส่งผลกระทบเพียงแค่ที่ผู้ใช้คนดังกล่าวเท่านั้น - Branching and Merging: จาก sandboxing หากผู้ใช้ต้องการ ส่งโค้ดกลับมาที่ต้นฉบับ แต่ยังไม่ไดต้องการให้ไปรวมกับโค้ดหลัก ก็สามารถสร้างพื้นที่ส่วนหนึ่งแยกออกมาต่างหากจากที่อยู่ของโค้ดหลัก (branch) และเมื่อแก้ไขจนเป็นที่พอใจแล้ว ก็สามารถนำเอาโค้ดดังกล่าวกลับไปรวมกับโค้ดหลักได้ (merge)