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
version_control:introduction_to_version_control_systems [2016/11/27 23:20] mithatversion_control:introduction_to_version_control_systems [2019/02/21 18:52] (current) – [Endcruft] 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.
  
Line 118: Line 119:
  
 ===== Endcruft ===== ===== Endcruft =====
-This content is Copyright © 2011-2016 Mithat Konar+This content is Copyright © 2011-2019 Mithat Konar
version_control/introduction_to_version_control_systems.1480288840.txt.gz · Last modified: 2016/11/27 23:20 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki