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:37] 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 57: Line 56:
   * **revision**: 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.
-  * 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 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
-  * An arbitrary determination made by the developers, not necessarily a VCS concept.+    * 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