Some additional changes to existing wording

This commit is contained in:
Will L Fife 2018-10-27 23:56:48 -07:00
parent 44c7eaad24
commit f8a96c4889

View File

@ -6,26 +6,17 @@ contributors:
filename: LearnHG.txt filename: LearnHG.txt
--- ---
Mercurial is a free, distributed source control management tool. It offers you Mercurial is a free, distributed source control management tool. It offers
the power to efficiently handle projects of any size while using an intuitive you the power to efficiently handle projects of any size while using an
interface. It is easy to use and hard to break, making it ideal for anyone intuitive interface. It is easy to use and hard to break, making it ideal for
working with versioned files. anyone working with versioned files.
## Versioning Concepts ## Versioning Concepts
### What is version control? ### What is version control?
Version control is a system that records changes to a file(s), over time. Version control is a system that keeps track fo changes to a set of file(s)
and/or directorie(s) over time.
### Centralized Versioning VS Distributed Versioning
* Centralized version control focuses on synchronizing, tracking, and backing
up files.
* Distributed version control focuses on sharing changes. Every change has a
unique id.
* Distributed systems have no defined structure. You could easily have a SVN
style, centralized system, with mercurial.
### Why Use Mercurial ### Why Use Mercurial
@ -40,27 +31,25 @@ style, centralized system, with mercurial.
#### Distributed Architecture #### Distributed Architecture
Traditional version control systems such as Subversion are typical Traditionally version control systems such as CVS and Subversion are a client server
client-server architectures with a central server to store the revisions of a architecture with a central server to store the revsion history of a project. Mercurial however
project. In contrast, Mercurial is truly distributed, giving each developer a is a truly distributed architecture, giving each devloper a full local copy of the entire
local copy of the entire development history. This way it works independent of development history. It works independently of a central server.
network access or a central server. Committing, branching and merging are fast
and cheap.
#### Fast #### Fast
Mercurial's implementation and data structures are designed to be fast. You can Mercurial is implemented to be fast. You are able to generate diffs between
generate diffs between revisions, or jump back in time within seconds. revsions, and switch between tags and branches with little time and effort.
Therefore Mercurial is perfectly suitable for large projects such as OpenJDK Mercurial is used by large projects such as OpenJDK
([hg](http://hg.openjdk.java.net/jdk7/jdk7)) or NetBeans ([hg](http://hg.openjdk.java.net/jdk7/jdk7)) and NetBeans
([hg](http://hg.netbeans.org/)). ([hg](http://hg.netbeans.org/)).
#### Platform Independent #### Platform Independent
Mercurial was written with platform independence in mind. Therefore most of Mercurial was written to be highly platform independent. Much of Mercurial is
Mercurial is written in Python, with a small part in portable C for performance written in Python, with small performance critical parts written in portable
reasons. As a result, binary releases are available on all major platforms. C. Binary releases are available for all major platforms.
#### Extensible #### Extensible
@ -75,11 +64,10 @@ commands, add new commands and access all the core functions of Mercurial.
#### Easy to Use #### Easy to Use
Mercurial sports a consistent command set in which most subversion users feel The Mercurial command set is consistent with what subversion users would
right at home. Potentially dangerous actions are available via extensions you expect, so they are likely to feel right at home. Most dangerous actions
need to enable, so the basic interface is easy to use, easy to learn and hard are part of extensions that need to be enabled to be used.
to break. The [Quick Start](https://www.mercurial-scm.org/quickstart) should
get you going in a just few minutes.
#### Open Source #### Open Source
@ -92,18 +80,18 @@ version.
| Term | Definition | | Term | Definition |
| ------------- | ---------------------------------- | | ------------- | ---------------------------------- |
| Repository | Collection of revisions | | Repository | A repository is a collection of revisions |
| hgrc | A file which stores defaults for a repository. Global is ~/.hgrc and local is .hgrc inside the repository | | hgrc | A configuration file which stores the defaults for a repository. |
| revision | Committed changeset, by REV number | | revision | A committed changeset: has a REV number |
| changeset | Set of work changes saved as diffs | | changeset | Set of changes saved as diffs |
| diff | Changes between files | | diff | Changes between file(s) |
| tag | Name for a specific revision | | tag | A named named revision |
| parent(s) | Immediate ancestor(s) of revision or work | | parent(s) | Immediate ancestor(s) of a revison |
| branch | Child of a revision | | branch | A child of a revision |
| head | A head is a changeset with no child changesets | | head | A head is a changeset with no child changesets |
| merge | The process of merging two HEADS | | merge | The process of merging two HEADS |
| tip | Latest revision in any branch | | tip | The latest revision in any branch |
| patch | All diffs between two revisions | | patch | All of the diffs between two revisions |
| bundle | Patch with permis­sions and rename support | | bundle | Patch with permis­sions and rename support |