SlideShare a Scribd company logo
1 of 21
Download to read offline
Introduction to Version Control
Wei-Tsung Su (蘇維宗)
ellington.su@gmail.com
04/01/2014 (Ver. 1.0)
Ubiquitous Computing and Ambient Networking Laboratory Page : 1
Reference
• Scott Chacon, Git Pro, Jul. 29, 2009. Available:
http://git-scm.com/book
• http://en.wikipedia.org/wiki/Revision_control
• http://homes.cs.washington.edu/~mernst/advic
e/version-control.html
Ubiquitous Computing and Ambient Networking Laboratory Page : 2
Agenda
• What is version control?
• Why use version control?
• Version control system (VCS)
– Types of VCS
– Terminologies of VCS
– Challenges of VCS
• Free VCS
– Web-based services
– Open source projects
Ubiquitous Computing and Ambient Networking Laboratory Page : 3
Version Control (or Revision Control)
• Version control is the management of changes to
documents, computer programs, large web sites,
and other collections of information. (Source:
Wikipedia)
• In version control, changes are usually identified
by a number termed as ”revision number”.
Ubiquitous Computing and Ambient Networking Laboratory Page : 4
Why use Version Control?
• Recall the previous versions
• Collaborative development environment
• Difference releases for a product by
– Different platforms
– Different customers
– …
Ubiquitous Computing and Ambient Networking Laboratory Page : 5
Scenarios
• Sometimes, it happens …
Ubiquitous Computing and Ambient Networking Laboratory Page : 6
Scenarioscon’t
• Chicken and duck talk …
Ubiquitous Computing and Ambient Networking Laboratory Page : 7
void LOOPv1() {
for(;;);
}
Remove the for loop!
int LOOPv2() {
while(true);
}
for loop???
Scenarioscon’t
• Customers want customization …
Ubiquitous Computing and Ambient Networking Laboratory Page : 8
Ver 1.0 Ver 1.1_A
Ver 1.2_B
Ver 1.3_A
Customer A
Customer B
Version Control System
• Version control system (VCS) is a system that records
changes to a file or set of files over time so that you can
recall specific versions later. (Source: Git Pro)
• Type of VCS
– Local VCS (Ex. rcs)
– Centralized VCS (Ex. CVS, SVN)
– Distributed VCS (Ex. Git)
Ubiquitous Computing and Ambient Networking Laboratory Page : 9
Local VCS
Ubiquitous Computing and Ambient Networking Laboratory Page : 10
Local Computer
Version 3
Workspace Repository
Version 3
Version 2
Version 1
Centralized VCS
Ubiquitous Computing and Ambient Networking Laboratory Page : 11
VCS Server
Version 3
Workspace Repository
Version 3
Version 2
Version 1
Local Computer A
Version 3
Workspace
Local Computer B
Distributed VCS
Ubiquitous Computing and Ambient Networking Laboratory Page : 12
VCS Server
Repository
Version 3
Version 2
Version 1
Local Computer A
Repository
Version 3
Version 2
Version 1
Workspace
Version 3
Local Computer B
Repository
Version 3
Version 2
Version 1
Workspace
Version 3
Concepts of VCS
• Workspace and Repository
• Commit and Update
• Branch and Merge
Ubiquitous Computing and Ambient Networking Laboratory Page : 13
Workspace and Repository
• Workspace
– The working copy which developers could maintain in local
machines.
• Repository
– The controlled copies of different versions in VCS.
Ubiquitous Computing and Ambient Networking Laboratory Page : 14
VCS Server
Version 3
Workspace Repository
Version 3
Version 2
Version 1
Local Computer A
Version 3
Workspace
Local Computer B
Commit and Update
• Commit
– Write the changes made in the working copy back to the repository.
• Update
– Update changes made in the repository into the local working copy.
Ubiquitous Computing and Ambient Networking Laboratory Page : 15
Version 3 (modified)
Workspace Repository
Version 3
Version 2
Version 1
Version 41. Commit
Version 4
Workspace
2. Update
Branch and Merge
• Branch
– A set of files may be branched at a point in time so that, from that
time forward, two copies of those files may develop at different
speeds or in different ways independently of each other.
• Merge
– An operation in which two sets of changes are applied to a file or
set of files.
Ubiquitous Computing and Ambient Networking Laboratory Page : 16
Repository
Version 3Version 2Version 1
Version 4
MergeBranch
Version 5
Challenges of VCS
• Conflict
– A conflict occurs when different parties make changes to
the same document, and the system is unable to
reconcile the changes.
Ubiquitous Computing and Ambient Networking Laboratory Page : 17
Version 3 (modified)
Workspace Repository
Version 3
Version 2
Version 1
Version 4
(Conflict!!!)
Commit
Version 3 (modified)
Workspace
Commit
How to Prevent Conflicts?
• Modularize your projects
• Don’t commit generated files
• Integrate others’ changes frequently
• Share your changes frequently
• Test before commit
• …
Ubiquitous Computing and Ambient Networking Laboratory Page : 18
Web-based VCS
• GitHub
– https://github.com/
• OpenFoundry
– https://www.openfoundry.org/of/
• SourceForge
– http://sourceforge.net/
• Google Code Project Hosting
– https://code.google.com/
Ubiquitous Computing and Ambient Networking Laboratory Page : 19
Open Source Projects
• Concurrent Versions System (CVS)
• Subversion (SVN)
– Apache Subversion Server
– VisualSVN Server
– TortoiseSVN Client
– …
• git-scm (software configuration management)
Ubiquitous Computing and Ambient Networking Laboratory Page : 20
Q & A
Ubiquitous Computing and Ambient Networking Laboratory Page : 21

More Related Content

What's hot

What's hot (18)

Subversion last minute survival crash course
Subversion  last minute survival crash courseSubversion  last minute survival crash course
Subversion last minute survival crash course
 
Container Security
Container SecurityContainer Security
Container Security
 
Makefile+VersionControl
Makefile+VersionControlMakefile+VersionControl
Makefile+VersionControl
 
Vpm
VpmVpm
Vpm
 
Dealing with large code bases. cd ams meetup
Dealing with large code bases. cd ams meetupDealing with large code bases. cd ams meetup
Dealing with large code bases. cd ams meetup
 
Kernel Recipes 2016 - The kernel report
Kernel Recipes 2016 - The kernel reportKernel Recipes 2016 - The kernel report
Kernel Recipes 2016 - The kernel report
 
Linuxcon secureefficientcontainerimagemanagementharbor
Linuxcon secureefficientcontainerimagemanagementharborLinuxcon secureefficientcontainerimagemanagementharbor
Linuxcon secureefficientcontainerimagemanagementharbor
 
Alternatives to layer-based image distribution: using CERN filesystem for images
Alternatives to layer-based image distribution: using CERN filesystem for imagesAlternatives to layer-based image distribution: using CERN filesystem for images
Alternatives to layer-based image distribution: using CERN filesystem for images
 
pracfinal
pracfinalpracfinal
pracfinal
 
Hands on kubernetes_container_orchestration
Hands on kubernetes_container_orchestrationHands on kubernetes_container_orchestration
Hands on kubernetes_container_orchestration
 
Releasing a Distribution in the Age of DevOps.
Releasing a Distribution in the Age of DevOps. Releasing a Distribution in the Age of DevOps.
Releasing a Distribution in the Age of DevOps.
 
Understanding GIT and Version Control
Understanding GIT and Version ControlUnderstanding GIT and Version Control
Understanding GIT and Version Control
 
Automated testing with Openshift
Automated testing with OpenshiftAutomated testing with Openshift
Automated testing with Openshift
 
Principles of Reproducible Workflows (U-DAWS) nfcamp2019
Principles of Reproducible Workflows (U-DAWS) nfcamp2019Principles of Reproducible Workflows (U-DAWS) nfcamp2019
Principles of Reproducible Workflows (U-DAWS) nfcamp2019
 
Introduction to git
Introduction to gitIntroduction to git
Introduction to git
 
Getting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS UsersGetting Started with Git: A Primer for SVN and TFS Users
Getting Started with Git: A Primer for SVN and TFS Users
 
Kernel Recipes 2016 - Patches carved into stone tablets...
Kernel Recipes 2016 - Patches carved into stone tablets...Kernel Recipes 2016 - Patches carved into stone tablets...
Kernel Recipes 2016 - Patches carved into stone tablets...
 
BePUG - PowerShell and REST - Expanding your Horizon
BePUG - PowerShell and REST - Expanding your HorizonBePUG - PowerShell and REST - Expanding your Horizon
BePUG - PowerShell and REST - Expanding your Horizon
 

Viewers also liked (12)

創業的藝術
創業的藝術創業的藝術
創業的藝術
 
Google Glass - Unit01: Design
Google Glass - Unit01: DesignGoogle Glass - Unit01: Design
Google Glass - Unit01: Design
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuth
 
軟體系統測試簡介
軟體系統測試簡介軟體系統測試簡介
軟體系統測試簡介
 
Arduino Yun Mini - 使用SQLite
Arduino Yun Mini - 使用SQLiteArduino Yun Mini - 使用SQLite
Arduino Yun Mini - 使用SQLite
 
Arduino Yun Mini簡介
Arduino Yun Mini簡介Arduino Yun Mini簡介
Arduino Yun Mini簡介
 
Google App Engine for Python - Unit01: Basic
Google App Engine for Python - Unit01: BasicGoogle App Engine for Python - Unit01: Basic
Google App Engine for Python - Unit01: Basic
 
LinkIt Smart 7688程式開發
LinkIt Smart 7688程式開發LinkIt Smart 7688程式開發
LinkIt Smart 7688程式開發
 
MQTT簡介與使用開放原始碼
MQTT簡介與使用開放原始碼MQTT簡介與使用開放原始碼
MQTT簡介與使用開放原始碼
 
Introduction to Wi-Fi Direct
Introduction to Wi-Fi DirectIntroduction to Wi-Fi Direct
Introduction to Wi-Fi Direct
 
Introducing MQTT
Introducing MQTTIntroducing MQTT
Introducing MQTT
 
Introduction to NFC
Introduction to NFCIntroduction to NFC
Introduction to NFC
 

Similar to Introduction to Version Control

Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
Samnang Chhun
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
Philip Johnson
 
Slide set 7 (Source Code Management History Overview) - Copy.pptx
Slide set 7 (Source Code Management History  Overview) - Copy.pptxSlide set 7 (Source Code Management History  Overview) - Copy.pptx
Slide set 7 (Source Code Management History Overview) - Copy.pptx
UTKARSHBHARDWAJ71
 
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationDigital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 Information
Massimo Menichinelli
 
SlideDevopsSubjectEng set 8 (CVCS DVCS).pptx
SlideDevopsSubjectEng set 8 (CVCS  DVCS).pptxSlideDevopsSubjectEng set 8 (CVCS  DVCS).pptx
SlideDevopsSubjectEng set 8 (CVCS DVCS).pptx
UTKARSHBHARDWAJ71
 

Similar to Introduction to Version Control (20)

Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
 
L06 a versioning_system_overview
L06 a versioning_system_overviewL06 a versioning_system_overview
L06 a versioning_system_overview
 
Linux13 concurrent versions system
Linux13 concurrent versions systemLinux13 concurrent versions system
Linux13 concurrent versions system
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
 
Slide set 7 (Source Code Management History Overview) - Copy.pptx
Slide set 7 (Source Code Management History  Overview) - Copy.pptxSlide set 7 (Source Code Management History  Overview) - Copy.pptx
Slide set 7 (Source Code Management History Overview) - Copy.pptx
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best Practices
 
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationDigital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 Information
 
Cvs
CvsCvs
Cvs
 
IRJET-Evolution of Version Control Systems and a Study on Tortoisesvn
IRJET-Evolution of Version Control Systems and a Study on TortoisesvnIRJET-Evolution of Version Control Systems and a Study on Tortoisesvn
IRJET-Evolution of Version Control Systems and a Study on Tortoisesvn
 
Version Control
Version ControlVersion Control
Version Control
 
SVN Information
SVN Information  SVN Information
SVN Information
 
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
Digital Fabrication Studio.02 _Information @ Aalto Media FactoryDigital Fabrication Studio.02 _Information @ Aalto Media Factory
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
 
Source control
Source controlSource control
Source control
 
Digital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: InformationDigital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: Information
 
Evolution of Version Control In Open Source
Evolution of Version Control In Open SourceEvolution of Version Control In Open Source
Evolution of Version Control In Open Source
 
Evolution ofversioncontrolinopensource
Evolution ofversioncontrolinopensourceEvolution ofversioncontrolinopensource
Evolution ofversioncontrolinopensource
 
Introduction to Subversion
Introduction to SubversionIntroduction to Subversion
Introduction to Subversion
 
SlideDevopsSubjectEng set 8 (CVCS DVCS).pptx
SlideDevopsSubjectEng set 8 (CVCS  DVCS).pptxSlideDevopsSubjectEng set 8 (CVCS  DVCS).pptx
SlideDevopsSubjectEng set 8 (CVCS DVCS).pptx
 
SVN
SVNSVN
SVN
 
Distributed Version Control Systems
Distributed Version Control SystemsDistributed Version Control Systems
Distributed Version Control Systems
 

Recently uploaded

Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
Kamal Acharya
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
MayuraD1
 

Recently uploaded (20)

Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptxHOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
HOA1&2 - Module 3 - PREHISTORCI ARCHITECTURE OF KERALA.pptx
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 

Introduction to Version Control

  • 1. Introduction to Version Control Wei-Tsung Su (蘇維宗) ellington.su@gmail.com 04/01/2014 (Ver. 1.0) Ubiquitous Computing and Ambient Networking Laboratory Page : 1
  • 2. Reference • Scott Chacon, Git Pro, Jul. 29, 2009. Available: http://git-scm.com/book • http://en.wikipedia.org/wiki/Revision_control • http://homes.cs.washington.edu/~mernst/advic e/version-control.html Ubiquitous Computing and Ambient Networking Laboratory Page : 2
  • 3. Agenda • What is version control? • Why use version control? • Version control system (VCS) – Types of VCS – Terminologies of VCS – Challenges of VCS • Free VCS – Web-based services – Open source projects Ubiquitous Computing and Ambient Networking Laboratory Page : 3
  • 4. Version Control (or Revision Control) • Version control is the management of changes to documents, computer programs, large web sites, and other collections of information. (Source: Wikipedia) • In version control, changes are usually identified by a number termed as ”revision number”. Ubiquitous Computing and Ambient Networking Laboratory Page : 4
  • 5. Why use Version Control? • Recall the previous versions • Collaborative development environment • Difference releases for a product by – Different platforms – Different customers – … Ubiquitous Computing and Ambient Networking Laboratory Page : 5
  • 6. Scenarios • Sometimes, it happens … Ubiquitous Computing and Ambient Networking Laboratory Page : 6
  • 7. Scenarioscon’t • Chicken and duck talk … Ubiquitous Computing and Ambient Networking Laboratory Page : 7 void LOOPv1() { for(;;); } Remove the for loop! int LOOPv2() { while(true); } for loop???
  • 8. Scenarioscon’t • Customers want customization … Ubiquitous Computing and Ambient Networking Laboratory Page : 8 Ver 1.0 Ver 1.1_A Ver 1.2_B Ver 1.3_A Customer A Customer B
  • 9. Version Control System • Version control system (VCS) is a system that records changes to a file or set of files over time so that you can recall specific versions later. (Source: Git Pro) • Type of VCS – Local VCS (Ex. rcs) – Centralized VCS (Ex. CVS, SVN) – Distributed VCS (Ex. Git) Ubiquitous Computing and Ambient Networking Laboratory Page : 9
  • 10. Local VCS Ubiquitous Computing and Ambient Networking Laboratory Page : 10 Local Computer Version 3 Workspace Repository Version 3 Version 2 Version 1
  • 11. Centralized VCS Ubiquitous Computing and Ambient Networking Laboratory Page : 11 VCS Server Version 3 Workspace Repository Version 3 Version 2 Version 1 Local Computer A Version 3 Workspace Local Computer B
  • 12. Distributed VCS Ubiquitous Computing and Ambient Networking Laboratory Page : 12 VCS Server Repository Version 3 Version 2 Version 1 Local Computer A Repository Version 3 Version 2 Version 1 Workspace Version 3 Local Computer B Repository Version 3 Version 2 Version 1 Workspace Version 3
  • 13. Concepts of VCS • Workspace and Repository • Commit and Update • Branch and Merge Ubiquitous Computing and Ambient Networking Laboratory Page : 13
  • 14. Workspace and Repository • Workspace – The working copy which developers could maintain in local machines. • Repository – The controlled copies of different versions in VCS. Ubiquitous Computing and Ambient Networking Laboratory Page : 14 VCS Server Version 3 Workspace Repository Version 3 Version 2 Version 1 Local Computer A Version 3 Workspace Local Computer B
  • 15. Commit and Update • Commit – Write the changes made in the working copy back to the repository. • Update – Update changes made in the repository into the local working copy. Ubiquitous Computing and Ambient Networking Laboratory Page : 15 Version 3 (modified) Workspace Repository Version 3 Version 2 Version 1 Version 41. Commit Version 4 Workspace 2. Update
  • 16. Branch and Merge • Branch – A set of files may be branched at a point in time so that, from that time forward, two copies of those files may develop at different speeds or in different ways independently of each other. • Merge – An operation in which two sets of changes are applied to a file or set of files. Ubiquitous Computing and Ambient Networking Laboratory Page : 16 Repository Version 3Version 2Version 1 Version 4 MergeBranch Version 5
  • 17. Challenges of VCS • Conflict – A conflict occurs when different parties make changes to the same document, and the system is unable to reconcile the changes. Ubiquitous Computing and Ambient Networking Laboratory Page : 17 Version 3 (modified) Workspace Repository Version 3 Version 2 Version 1 Version 4 (Conflict!!!) Commit Version 3 (modified) Workspace Commit
  • 18. How to Prevent Conflicts? • Modularize your projects • Don’t commit generated files • Integrate others’ changes frequently • Share your changes frequently • Test before commit • … Ubiquitous Computing and Ambient Networking Laboratory Page : 18
  • 19. Web-based VCS • GitHub – https://github.com/ • OpenFoundry – https://www.openfoundry.org/of/ • SourceForge – http://sourceforge.net/ • Google Code Project Hosting – https://code.google.com/ Ubiquitous Computing and Ambient Networking Laboratory Page : 19
  • 20. Open Source Projects • Concurrent Versions System (CVS) • Subversion (SVN) – Apache Subversion Server – VisualSVN Server – TortoiseSVN Client – … • git-scm (software configuration management) Ubiquitous Computing and Ambient Networking Laboratory Page : 20
  • 21. Q & A Ubiquitous Computing and Ambient Networking Laboratory Page : 21