User Tools

Site Tools


version_control:introduction_to_version_control_systems

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
version_control:introduction_to_version_control_systems [2016/11/27 23:20] mithatversion_control:introduction_to_version_control_systems [2019/02/21 18:50] – [Backing up is not a core function!] mithat
Line 14: Line 14:
   * [[https://www.mercurial-scm.org/|Mercurial]]: An elegant distributed system.   * [[https://www.mercurial-scm.org/|Mercurial]]: An elegant distributed system.
   * [[http://bazaar.canonical.com/en/|Bazaar]]: Originally proprietary (Canonical), now FOSS.   * [[http://bazaar.canonical.com/en/|Bazaar]]: Originally proprietary (Canonical), now FOSS.
-  * [[http://www.nongnu.org/cvs/|CVS]]: A classic. Despised by many+  * [[http://subversion.apache.org/|SVN]]: "CVS done right," once very popular
-  * [[http://subversion.apache.org/|SVN]]: "CVS done right." Once very popular. +  * [[http://www.nongnu.org/cvs/|CVS]]: A classic and despised by many.
 ===== Primary functions ===== ===== Primary functions =====
   * Create a **repository** to store all the source code for a project.   * Create a **repository** to store all the source code for a project.
Line 24: Line 23:
   * Permit moving back and forth through different **revisions** (i.e., the history) of the project.   * Permit moving back and forth through different **revisions** (i.e., the history) of the project.
   * Allow **branching** and **merging** of revisions.   * Allow **branching** and **merging** of revisions.
-  * Let multiple users (a team) share and integrate code.+  * Let multiple users (a team) **share and integrate** code.
  
 ===== Backing up is not a core function! ===== ===== Backing up is not a core function! =====
Line 30: Line 29:
   * The VCS you use may suck as a backup system.   * The VCS you use may suck as a backup system.
   * Backing up is something you may or may not get "for free."   * Backing up is something you may or may not get "for free."
-  * Depending on the VCS you use, if you lose the repository, you may lose all the history---or the entire project.+  * With some VCS, if you lose the repository, you lose all the history or even the entire project.
  
 ===== Centralized versus distributed ===== ===== Centralized versus distributed =====
Line 47: Line 46:
 ===== Distributed systems ===== ===== Distributed systems =====
   * Replacing centralized systems.   * Replacing centralized systems.
-  * Distributed systems use a peer-to-peer architecture. +  * Uses a peer-to-peer architecture. 
-  * Individual users have complete, fully editable repositories. +    * Individual users have complete, fully editable repositories. 
-  * Users synchronize their repositories with each other as needed.+    * Users synchronize repositories with each other as needed.
   * Managing can be more complicated for groups, but is more flexible.   * Managing can be more complicated for groups, but is more flexible.
   * Can be configured to work like to a centralized system.   * Can be configured to work like to a centralized system.
Line 55: Line 54:
  
 ===== Revisions ===== ===== Revisions =====
-  * **revision** is a snapshot of the state of a project at a given moment.+  * **revision**a snapshot of the state of a project at a given moment.
   * When a meaningful change to the code of a project is completed, a **revision** incorporating that change is **committed** (placed) into the repository.   * When a meaningful change to the code of a project is completed, a **revision** incorporating that change is **committed** (placed) into the repository.
-  * Revisions are also called **commits**, **snapshots**, and **changesets**.+  * Also called **commit**, **snapshot**, or **changeset**.
   * If needed, differences between the most recent state and older revisions can be determined.   * If needed, differences between the most recent state and older revisions can be determined.
  
Line 65: Line 64:
  
 ===== Branching ===== ===== Branching =====
-  * **Branching**: making a copy of the project whose development will go in parallel with the original.+  * **branching**: making a copy of the project whose development will go in parallel with the original.
     * A branch to test ideas that develops in parallel with the main release.     * A branch to test ideas that develops in parallel with the main release.
     * A branch to develop a bugfix.     * A branch to develop a bugfix.
Line 71: Line 70:
  
 ===== Merging ===== ===== Merging =====
-  * **Merging**: incorporating changes from a different branch or another repository.+  * **merging**: incorporating changes from a different branch or another repository.
     * Applying a security update or bugfix developed for a 1.1 release to the 1.0 release.     * Applying a security update or bugfix developed for a 1.1 release to the 1.0 release.
   * Many VCS's facilitate merging.   * Many VCS's facilitate merging.
Line 79: Line 78:
  
 ===== Releases and versions ===== ===== Releases and versions =====
-  * A revision that has has been published for general use is a **release** or a **version**. +  * A **release** or a **version** is a revision that has has been published for general use
-  Not necessarily a VCS concept; often an arbitrary determination made by the developers.+    An arbitrary determination made by the developers, not necessarily a VCS concept.
   * Typically there are several revisions (commits) between releases/versions.   * Typically there are several revisions (commits) between releases/versions.
  
Line 89: Line 88:
 ===== Semantic versioning ===== ===== Semantic versioning =====
   * [[http://semver.org/|Semantic versioning]] summarizes a commonly used version numbering scheme.   * [[http://semver.org/|Semantic versioning]] summarizes a commonly used version numbering scheme.
-    * **{major}.{minor}.{path}** +    * **{major}.{minor}.{patch}** 
-    * **major**: version when you make incompatible API changes,+    * **major**: there are incompatible API changes,
     * **minor**: added functionality in a backwards-compatible manner.     * **minor**: added functionality in a backwards-compatible manner.
     * **patch**: backwards-compatible bug fixes.     * **patch**: backwards-compatible bug fixes.
     * Additional labels for pre-release and build metadata.     * Additional labels for pre-release and build metadata.
-        * alpha release, beta release, release candidate.+        * alpha, beta, release candidate.
  
 ===== Microsoft version numbering ===== ===== Microsoft version numbering =====
Line 111: Line 110:
  
 ===== Other versioning schemes ===== ===== Other versioning schemes =====
-  * Some projects use date-based versioning, e.g.: ''2015.06.23''''15.033'', etc.+  * Some projects use date-based versioning. 
 +    * ''2015.06.23'' 
 +    * ''15.033''
   * Whatever you do, be consistent and meaningful.   * Whatever you do, be consistent and meaningful.
  
version_control/introduction_to_version_control_systems.txt · Last modified: 2019/02/21 18:52 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki