Difference between revisions of "Version Control"

From eLinux.org
Jump to: navigation, search
(Introduction: Started adding text)
(Introduction)
Line 1: Line 1:
 
=Introduction=
 
=Introduction=
 
* What is it
 
* What is it
Version Control (VC) is a common practice used to track all the changes that occur to the files in a project over time. It needs a Version Control System (VCS), a tool, to work
+
Version Control (VC) is a common practice used to track all the changes that occur to the files in a project over time. It needs a Version Control System (VCS) tool to work
  
 
* Why use it
 
* Why use it
There are three types questions a VCS helps answer
+
*:There are three types questions a VCS helps answer
  1. What changes were made in the past, why were they made and who made them (commit history and commit comments)
+
*#What changes were made in the past, why were they made and who made them (commit history and commit comments)
  1. How can undo a change I've made in error and "roll back" to start again
+
*#How can undo a change I've made in error and "roll back" to start again
  1. How can I share my changes with the rest of the project team
+
*# How can I share my changes with the rest of the project team
  
 
* Tools available
 
* Tools available
 
+
** Distributed vs. Centralised
  * Distributed and Centralised
+
**:Modern VCS work on a distributed model (DVCS). This means that every member of the project team keeps a complete local copy of all the changes. The previous model, still widely used with tools like Subversion, is centralised. There is only one central database with all the changes and team members only have a copy of the change they are currently working on.
Modern VCS work on a distributed model (DVCS). This means that every member of the project team keeps a complete local copy of all the changes.
+
** Open Source and Commercial Tools
The previous model, still widely used with tools like Subversion, is centralised. There is only one central database with all the changes and team members only have a copy of the change they are currently working on.
+
** What the tools do
 
+
*** Commit history
  * Open Source and Commercial Tools
+
*** Diff listing
 
+
*** Integrate with other tools (e.g. Ticket Systems, built Systems, project management etc)
  * What the tools do
 
    * Commit history
 
    * Diff listing
 
    * Integrate with other tools (e.g. Ticket Systems, built Systems, project management etc)
 
  
 
=An example using git=
 
=An example using git=

Revision as of 15:11, 26 April 2012

Introduction

  • What is it

Version Control (VC) is a common practice used to track all the changes that occur to the files in a project over time. It needs a Version Control System (VCS) tool to work

  • Why use it
    There are three types questions a VCS helps answer
    1. What changes were made in the past, why were they made and who made them (commit history and commit comments)
    2. How can undo a change I've made in error and "roll back" to start again
    3. How can I share my changes with the rest of the project team
  • Tools available
    • Distributed vs. Centralised
      Modern VCS work on a distributed model (DVCS). This means that every member of the project team keeps a complete local copy of all the changes. The previous model, still widely used with tools like Subversion, is centralised. There is only one central database with all the changes and team members only have a copy of the change they are currently working on.
    • Open Source and Commercial Tools
    • What the tools do
      • Commit history
      • Diff listing
      • Integrate with other tools (e.g. Ticket Systems, built Systems, project management etc)

An example using git

  • Setup up
  • Creating a repo
  • Committing a file
  • Making a change
  • Showing the diff
  • Committing the change
  • Showing the history
  • Branches


Working with other

  • Remote repos
  • Merging
  • Patches