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

What's hot (20)

ODP
Nguyễn Vũ Hưng: Subversion best practices
Vu Hung Nguyen
 
PDF
Introduction to Subversion
Atul Jha
 
PDF
Version Control with SVN
PHPBelgium
 
PPTX
Subversion on-the-fly replication
normanmaurer
 
KEY
SVN Best Practices
abackstrom
 
PPTX
SVN Best Practices
ESRI Bulgaria
 
PPT
SVN Tool Information : Best Practices
Maidul Islam
 
PPTX
Getting Started With Subversion
Jordan Hatch
 
PDF
Version Control With Subversion
Samnang Chhun
 
PDF
Digital Fabrication Studio 0.3 Information
Massimo Menichinelli
 
PDF
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
Massimo Menichinelli
 
ODP
Pipeline based deployments on Jenkins
Knoldus Inc.
 
PDF
Digital Fabrication Studio v.0.2: Information
Massimo Menichinelli
 
PPTX
SVN Tutorial
enggHeads
 
PDF
Docker & ci
Patxi Gortázar
 
PDF
Version Control & Git
Craig Smith
 
PDF
DCSF19 Dockerfile Best Practices
Docker, Inc.
 
PPTX
CI/CD on Android project via Jenkins Pipeline
Veaceslav Gaidarji
 
ODP
An introduction to SVN
Olivier Teytaud
 
PDF
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
Eric Smalling
 
Nguyễn Vũ Hưng: Subversion best practices
Vu Hung Nguyen
 
Introduction to Subversion
Atul Jha
 
Version Control with SVN
PHPBelgium
 
Subversion on-the-fly replication
normanmaurer
 
SVN Best Practices
abackstrom
 
SVN Best Practices
ESRI Bulgaria
 
SVN Tool Information : Best Practices
Maidul Islam
 
Getting Started With Subversion
Jordan Hatch
 
Version Control With Subversion
Samnang Chhun
 
Digital Fabrication Studio 0.3 Information
Massimo Menichinelli
 
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
Massimo Menichinelli
 
Pipeline based deployments on Jenkins
Knoldus Inc.
 
Digital Fabrication Studio v.0.2: Information
Massimo Menichinelli
 
SVN Tutorial
enggHeads
 
Docker & ci
Patxi Gortázar
 
Version Control & Git
Craig Smith
 
DCSF19 Dockerfile Best Practices
Docker, Inc.
 
CI/CD on Android project via Jenkins Pipeline
Veaceslav Gaidarji
 
An introduction to SVN
Olivier Teytaud
 
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
Eric Smalling
 

Viewers also liked (7)

PDF
Subversion Best Practices
Matt Wood
 
PPT
SVN Usage & Best Practices
Ashraf Fouad
 
PPT
Subversion Overview
polarion
 
PPTX
SVN Basics
Shiva Somvanshi
 
KEY
Git para quem vem do SVN
Michael Schuenck dos Santos
 
PDF
Git vs. SVN
Jessé Cirilo Soares
 
PDF
Introduction to Bootstrap
Ron Reiter
 
Subversion Best Practices
Matt Wood
 
SVN Usage & Best Practices
Ashraf Fouad
 
Subversion Overview
polarion
 
SVN Basics
Shiva Somvanshi
 
Git para quem vem do SVN
Michael Schuenck dos Santos
 
Introduction to Bootstrap
Ron Reiter
 
Ad

Similar to Introduce to SVN (20)

KEY
Version control with subversion
xprayc
 
PPTX
01 - Introduction to Version Control
Sergii Shmarkatiuk
 
PPTX
Slide set 7 (Source Code Management History Overview) - Copy.pptx
UTKARSHBHARDWAJ71
 
PPT
version controlling in software development
Anushka Perera
 
PPTX
Subversion last minute survival crash course
Fazreil Amreen Abdul Jalil
 
PDF
Subversion: A Getting Started Presentation
Nap Ramirez
 
PPT
Subversion on .Unix
Trong Dinh
 
PPT
Subversion on .Unix
Trong Dinh
 
PPTX
SVN
enggHeads
 
PPTX
Understanding GIT and Version Control
Sourabh Sahu
 
PPTX
Subversion
thebdot1
 
PPT
SVN session from PiTechnologies
PiTechnologies
 
PPT
Version Control
Matt Stoner
 
PPT
Subversion
wiradikusuma
 
PPTX
Random House
victorlukianchikov
 
PDF
Tsvn17
Tehmul Ghyara
 
PPT
Version control System
Saikumar Mahendra
 
PPT
Cvs and version control
Saikumar Mahendra
 
PPT
Subversion (SVN)
manugoel2003
 
Version control with subversion
xprayc
 
01 - Introduction to Version Control
Sergii Shmarkatiuk
 
Slide set 7 (Source Code Management History Overview) - Copy.pptx
UTKARSHBHARDWAJ71
 
version controlling in software development
Anushka Perera
 
Subversion last minute survival crash course
Fazreil Amreen Abdul Jalil
 
Subversion: A Getting Started Presentation
Nap Ramirez
 
Subversion on .Unix
Trong Dinh
 
Subversion on .Unix
Trong Dinh
 
Understanding GIT and Version Control
Sourabh Sahu
 
Subversion
thebdot1
 
SVN session from PiTechnologies
PiTechnologies
 
Version Control
Matt Stoner
 
Subversion
wiradikusuma
 
Random House
victorlukianchikov
 
Version control System
Saikumar Mahendra
 
Cvs and version control
Saikumar Mahendra
 
Subversion (SVN)
manugoel2003
 
Ad

More from Sitdhibong Laokok (15)

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

Recently uploaded (20)

PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
PDF
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Impact of IEEE Computer Society in Advancing Emerging Technologies including ...
Hironori Washizaki
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 

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)