From eeb050085f95095f839df353839f0da10f65a0a9 Mon Sep 17 00:00:00 2001 From: Solomon H Date: Mon, 15 Oct 2018 20:02:17 -0800 Subject: [PATCH] Reorganized & added Version Control info (#19162) --- .../version-control-system/index.md | 54 +++++++++++++------ 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/client/src/guide/english/software-engineering/version-control-system/index.md b/client/src/guide/english/software-engineering/version-control-system/index.md index 543d277275..8a86659899 100644 --- a/client/src/guide/english/software-engineering/version-control-system/index.md +++ b/client/src/guide/english/software-engineering/version-control-system/index.md @@ -12,13 +12,22 @@ The first VCS (CVS, SVN...) were Centralized Version Control System. Where multiple repository exchange modification. The associate architecture is mostly peer to peer, but one repo can be declared as authoritative. The most used modern VCS (Git, Mercurial...) are Distributed Version Control System. -### Why use it? -- **Changes history** - VCS enable the user to browse and search all the changes which are automatically recorded with useful information (date, author...) and -- **Versions/tags** - The user can search/retrieve specific state of the files that have been labeled with tags and version names +## What is Version Control? + +Version control, also known as revision or source control, is defined as "the task of keeping a software system consisting of many versions and configurations well organized." + +Using [Git](https://en.wikipedia.org/wiki/Git) allows for software developers, project managers, and [open source](https://en.wikipedia.org/wiki/Open-source_software) contributors to keep track of changes throughout their [source code](https://en.wikipedia.org/wiki/Source_code). Various websites, such as GitHub, GitLab, and Bitbucket allow for better collaboration across time zones and working locations. + +In addition to tracking changes, there are numerous benefits of using version control on your next project. For example, version control allows you to branch out your code with commits (save changes locally) without compromising the original code (master branch). + +## Why use it? + +- **Changes history** - VCS enable the user to browse and search all the changes which are automatically recorded with useful information (date, author, etc.) and the ability to revert those changes whenever necessary. +- **Versions/tags** - The user can search/retrieve specific state of the files that have been labeled with tags and version names. - **Branching/Merging** - Distributed Version Control System make it easy to maintain parallel branch of files and to merge them partially or totally when needed. - **Atomic operations** - All modern VCS provide atomic operations: All modifications are guaranteed to succeed or fail as whole which ensure that the files are always in a consistent state. -### Most popular Version Control System +## Most popular Version Control System - Git @@ -38,17 +47,28 @@ The most used modern VCS (Git, Mercurial...) are Distributed Version Control Sys *SVM* is an old SCM that succeeded *CVS*. Eventually *SVN* was deprecated by the wide adoption of Distributed Version Control System like *Git* and *Mercurial* -### More Information: +## Vocabulary +* Git +* Repository +* Branch +* Merge Conflict +* Commit +* Pull Request +* [Code Review](https://github.com/freeCodeCamp/freeCodeCamp/blob/master/client/src/guide/english/working-in-tech/code-reviews/index.md) +* Push +* Pull + +## Resources & Examples + +* [GitHub](https://github.com) +* [GitLab](https://about.gitlab.com/) +* [Bitbucket](https://bitbucket.org/) + +## Want to learn more? -CVS - -Git - -Mercurial - - -SVN - - -Version Control on Wikipedia - +* [CVS](http://savannah.nongnu.org/projects/cvs) +* [Git](https://git-scm.com/) +* [GitHub Documentation](https://github.com/features/code-review) : Learn how to write better code and document your changes with version control. +* [Mercurial](https://www.mercurial-scm.org/) +* [SVN](http://subversion.tigris.org/) +* [Version Control on Wikipedia](https://en.wikipedia.org/wiki/Version_control)