Building Git

See the source imageBuilding Git
by 作者: James Coglan
Published: 2020

Pages: 733
Language 语言: English
Pages: PDF
Size: 10 Mb


Book Description
Building Git is a deep dive into the internals of the Git version control system. By rebuilding it in a high-level programming language,we explore the computer science behind this widely used tool. In the process,we gain a deeper understanding of Git itself as well as covering a wide array of broadly applicable programming topics,including:
Unix concepts
Reading and writing from files,making writes appear atomic,prevent race conditions between processes
Launching child processes in the foreground and background,communicating with them concurrently
Displaying output in the terminal,including colour formatting,paged output,and interacting with the user’s text editor
Parsing various file formats,including Git’s Merkle-tree-based commit model,the index,configuration files and packed object files
Data structures
How Git stores content on disk to make effective use of space,make the history efficient to search,and make it easy to detect differences between commits
Using diffs to efficiently update the contents of the workspace when checking out a new commit
Effectively using simple in-memory data structures to solve programming problems
Parsing and interpreting a query language for addressing commits
Concurrent editing
How Git uses branches to model concurrent edits
Algorithms for detecting differences between file versions and merging branches back together
Why merge conflicts happen,how they can be avoided,and how Git helps users prevent lost updates
How merging can be used as the basis for numerous operations to edit the commit history
Software engineering
Bootstrapping and growing a self-hosting system
Test-driven development
Refactoring to enable new feature development
Crash-only software design that allows programs to be interrupted and resumed
Networking
Using SSH to bootstrap a network protocol
How Git repositories communicate to minimise the data they need to transfer when fetching content
How the network protocol uses atomic operations to prevent users overwriting each other’s changes


下载地址:

Building Git.zip

打赏
未经允许不得转载:finelybook » Building Git

相关推荐

  • 暂无文章

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下

您的打赏,我们将继续给力更多优质内容

支付宝扫一扫打赏

微信扫一扫打赏