Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Piper (source control system)

From Wikipedia, the free encyclopedia
Version control system by Google

Piper is acentralized version control system used byGoogle for its internal software development. Originally designed forLinux, it supportsMicrosoft Windows andmacOS since October 2012.[1]

Scale

[edit]

Since its founding years Google has used a centralcodebase.[2] For over 10 years, Google relied on a singlePerforce instance, using proprietary caching for scalability.[3] The need for further scaling led to the development of Piper.[4] Currently, Google's version control "is an extreme case":[5] as of 2016,[update] the repository was storing 86terabytes of data comprising two billionlines of code in nine million files (twoorders of magnitude more than in theLinux kernel repository). 25,000 developers contributed 16,000 changes daily, with an additional 24,000commit operations by bots. Read requests each day are measured in billions.[6]

Architecture

[edit]

Piper uses regularGoogle Cloud storage solutions, originallyBigtable and laterSpanner, distributed across 10 data centers worldwide and replicated through thePaxos protocol.[3]

Use

[edit]

When using Piper, developers apply changes to a local copy of files, similar to aworking copy inSubversion,local clone inGit, or aclient in Perforce. Updates made by other developers can bepulled from the central repository and merged into the local code. Commits are only allowed after a code review via the Critique tool.[7][8]

Typical use involvesClients in the Cloud (CitC). This system utilizes cloud backend and a localFUSE filesystem to create an illusion of changes overlaid on top of a full repository. This approach enables seamless browsing and use of standard Unix tools without explicit synchronization operations, thus keeping the local copy very small (average size of a local copy is less than ten files). All file writes are mapped tosnapshots thus permitting restoration of the previous states of the code without explicit snapshotting. Due to its always-connected operation, CitC allows easy switching of computers, as well as sharing modified code with other developers, and use of the automatedbuild system and testing tools.[7] As a result, the majority of Google developers practicestrunk-based development with no personalbranches; the branches are mostly used for releases.[9]

Security

[edit]

Most of the codebase is visible to all developers, sensitive individual files (less than 1% as of 2016) are access-controlled. All operations with Piper are logged; accidentally committed files can be purged.[7]

References

[edit]
  1. ^Potvin & Levenberg 2016, p. 79.
  2. ^Potvin & Levenberg 2016, p. 78.
  3. ^abPotvin & Levenberg 2016, p. 80.
  4. ^Potvin & Levenberg 2016, pp. 80–81.
  5. ^Blank-Edelman 2018, p. 329.
  6. ^Potvin & Levenberg 2016, pp. 78–79.
  7. ^abcPotvin & Levenberg 2016, p. 81.
  8. ^Sadowski, Kurnia & Rohlfs 2020.
  9. ^Potvin & Levenberg 2016, p. 82.

Sources

[edit]
a subsidiary ofAlphabet
Company
Divisions
Subsidiaries
Active
Defunct
Programs
Events
Infrastructure
People
Current
Former
Criticism
General
Incidents
Other
Software
A–C
D–N
O–Z
Operating systems
Machine learning models
Neural networks
Computer programs
Formats and codecs
Programming languages
Search algorithms
Domain names
Typefaces
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y
Hardware
Pixel
Smartphones
Smartwatches
Tablets
Laptops
Other
Nexus
Smartphones
Tablets
Other
Other
Advertising
Antitrust
Intellectual
property
Privacy
Other
Related
Concepts
Products
Android
Street View coverage
YouTube
Other
Documentaries
Books
Popular culture
Other
Stub icon

ThisGoogle-related article is astub. You can help Wikipedia byadding missing information.

Retrieved from "https://en.wikipedia.org/w/index.php?title=Piper_(source_control_system)&oldid=1336898424"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp