Jump to content

Repository (version control)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 196.21.104.3 (talk) at 14:11, 1 August 2019 (Storing changes). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In revision control systems, a repository[1] is a data structure which stores metadata for a set of files or directory structure. Depending on whether the version control system in use is distributed (for instance, Git or Mercurial) or centralized (Subversion or Perforce, for example), the whole set of information in the repository may be duplicated on every user's system or may be maintained on a single server. Some of the metadata that a repository contains includes, among other things:

  • A historical record of changes in the repository.
  • A set of commit objects.
  • A set of references to commit objects, called heads.

Storing changes

The main purpose of a repository is to store a set of files, as well as the history of changes made to those files.[2] Exactly how each revision control system handles storing those changes, however, differs greatly: for instance, Subversion has in the past relied on a database instance and has since moved to storing its changes directly on the filesystem.[3] These differences in methodology have generally led to diverse uses of revision control by different groups, depending on their needs.[4] data:image/gif;base64,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

See also

References

  1. ^ "SVNBook". Retrieved 2012-04-20.
  2. ^ "Getting Started - About Version Control". Git SCM.
  3. ^ Ben Collins-Sussman; Brian W. Fitzpatrick; C. Michael Pilato (2011). "Chapter 5: Strategies for Repository Deployment". Version Control with Subversion: For Subversion 1.7. O'Reilly.
  4. ^ "Different approaches to source control branching". Stack Overflow. Retrieved 15 November 2014.