Started using BitKeeper in 2002 • Things were good mostly... • Allegation of license violations • Free license revoked in 2005 • Git project was born (hurray!) Linux Kernel Maintenance A Brief History
development (thousands of parallel branches) • Fully distributed • Able to handle large projects like the Linux kernel efficiently (speed and data size) Design Goals A Brief History
for each file • Store that file version in the Git repository • Adds checksum to staging area Commit those files • Git checksums each subdirectory • Stores those tree objects in the Git repository • Create a commit object with metadata and pointer to the root project tree (you liked it so you put a SHA-1 on it)
well if your team has access to shared filesystem • direct patch vs. file:// • Pros • leverage existing file permissions and network access • can pull directly from each other, bypassing remotes • Cons • limited by network access • NFS mount can be slower than SSH on the same server Local Protocol Git on the Server
data transfer is encrypted and authenticated • Efficient: data as compacted before transfer • Cons • Can’t serve anonymous access SSH Protocol Git on the Server
data-transfer mechanism as SSH protocol • Can serve anonymous access • Cons • Lack of authentication • More difficult to setup Git Protocol Git on the Server
used with consent courtesy of Scott Chacon http://scottchacon.com/ @ctshryock ctshryock.com github.com/ctshryock/GitTalk github.com/progit progit.org twitter www sources