version_control:introduction_to_version_control_systems
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
version_control:introduction_to_version_control_systems [2016/11/27 23:32] – mithat | version_control:introduction_to_version_control_systems [2019/02/21 18:48] – [Examples] mithat | ||
---|---|---|---|
Line 14: | Line 14: | ||
* [[https:// | * [[https:// | ||
* [[http:// | * [[http:// | ||
- | * [[http://www.nongnu.org/cvs/|CVS]]: A classic. Despised by many. | + | * [[http://subversion.apache.org/|SVN]]: "CVS done right," |
- | * [[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 47: | Line 46: | ||
===== Distributed systems ===== | ===== Distributed systems ===== | ||
* Replacing centralized systems. | * Replacing centralized 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 repositories with each other as needed. | * Users synchronize repositories with each other as needed. | ||
Line 55: | Line 54: | ||
===== Revisions ===== | ===== Revisions ===== | ||
- | * A **revision** | + | * **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 |
* 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** |
- | * 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/ | * Typically there are several revisions (commits) between releases/ | ||
Line 89: | Line 88: | ||
===== Semantic versioning ===== | ===== Semantic versioning ===== | ||
* [[http:// | * [[http:// | ||
- | * **{major}.{minor}.{path}** | + | * **{major}.{minor}.{patch}** |
- | * **major**: | + | * **major**: |
* **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.: '' | + | * Some projects use date-based versioning. |
+ | * '' | ||
+ | * '' | ||
* 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