Content deleted Content added
No edit summary Tags: Reverted Mobile edit Mobile web edit |
m Reverted edits by 185.181.109.220 (talk) (AV) |
||
(18 intermediate revisions by 16 users not shown) | |||
Line 1:
{{Short description|Software engineering tool}}
{{Short description|Software engineering tool}} {{cite book | chapter = About version control | chapter-url = https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control | title = Pro Git | first1 = Scott | last1 = Chacon | first2 = Ben | last2 = Straub | edition = 2nd | date = 2014 | publisher = Apress | at = Chapter 1.1 | access-date = 4 June 2019}}</ref> Compared to centralized version control, this enables automatic management [[Branching (version control)|branching]] and [[Merge (version control)|merging]], speeds up most operations (except pushing and pulling), improves the ability to work offline, and does not rely on a single ___location for backups.<ref name="git-scm"/><ref name="Joel 2010" /><ref>{{cite web|title=Intro to Distributed Version Control (Illustrated)|url=https://betterexplained.com/articles/intro-to-distributed-version-control-illustrated/|website=www.betterexplained.com|access-date=7 January 2018}}</ref> [[Git (software)|Git]], the world's most popular version control system,<ref name=":1" /> is a distributed version control system.▼
[[File:Git session.svg|thumb|The process of initializing a git repository. Git is one of the most popularly used distributed version control software.]]
▲
In 2010, software development author [[Joel Spolsky]] described distributed version control systems as "possibly the biggest advance in software development technology in the [past] ten years".<ref name="Joel 2010">{{cite web
Line 11 ⟶ 13:
==Distributed vs. centralized==
Distributed version control systems (DVCS) use a [[peer-to-peer]] approach to [[version control]], as opposed to the [[client–server model|client–server]] approach of centralized systems. Distributed revision control synchronizes repositories by transferring [[Patch (Unix)|patches]] from peer to peer. There is no single central version of the codebase; instead, each user has a working copy and the full change history.
'''Advantages of DVCS (compared with centralized systems) include:'''
* Allows users to work productively when not connected to a network.
* Common operations (such as commits, viewing history, and reverting changes) are faster for DVCS, because there is no need to communicate with a central server.<ref name='OSullivan'>{{cite web
Line 27 ⟶ 29:
* On [[FOSS]] software projects it is much easier to create a [[Fork (software development)|project fork]] from a project that is stalled because of leadership conflicts or design disagreements.
'''Disadvantages of DVCS (compared with centralized systems) include:'''
* Initial checkout of a repository is slower as compared to checkout in a centralized version control system, because all branches and revision history are copied to the local machine by default.
* The lack of locking mechanisms that is part of most centralized VCS and still plays an important role when it comes to non-mergeable binary files such as graphic assets or too complex single file binary or XML packages (e.g. office documents, PowerBI files, SQL Server Data Tools BI packages, etc.).{{citation needed|date=January 2018}}
Line 40 ⟶ 42:
{{Expand section|date=June 2008}}
===Central and branch repositories===
Line 73 ⟶ 75:
* [[BitKeeper]]
* [[GNU Bazaar]]
* [[Darcs]]
* [[Concurrent Versions System]], a predecessor of distributed version control systems
* [[TortoiseHg]], a graphical interface for Mercurial
|