| title | Git Rev News Edition 50 (April 26th, 2019) | |
|---|---|---|
| layout | default | |
| date | 2019-04-26 12:06:51 +0100 | |
| author | chriscool | |
| categories |
|
|
| navbar | false |
Welcome to the 50th edition of Git Rev News, a digest of all things Git. For our goals, the archives, the way we work, and how to contribute or to subscribe, see the Git Rev News page on git.github.io.
This edition covers what happened during the month of March 2019.
Fabio Aiuto asked for support on the Git mailing list as he was trying to build the first commit of Git made by Linus in April 2005, but was getting "undefined reference to symbol" errors related to the OpenSSL library.
Santiago Torres replied suggesting him to use a toolchain from around the time the commit was made and using an earlier OpenSSL library.
Fabio replied that he would have liked to "to debug around that simple version, to understand how everything works".
Santiago suggested playing with libgit2, that has a smaller code base, and its python bindings that "abstract the memory management and other low-level stuff".
Jeff King, alias Peff, suggested linking with -lcrypto instead of
-lssl and also adding -lz to the Makefile or the command line.
He said that make LIBS='-lcrypto -lz' works for him and that he
"used periodically check that Git v1.0 can fetch happily from GitHub".
asymptosis chimed in to suggest working through the "Git Internals" chapter in the Git Book to understand how Git works. He also pointed to a Git re-implementation as simple bash scripts he had started to understand that chapter.
Jonathan Nieder recommended reading the Hacking Git chapter in the user manual documentation that comes with Git.
Peff then reported that he managed again to build Git version 1.0.0
from December 2005 with make NO_OPENSSL=Nope and to use it to fetch
from GitHub.
Fabio replied that he also succeeded in building the first commit of Git made by Linus.
Fabio, Santiago and Peff then discussed the fact that it was still possible to build a 15 year old codebase with a modern toolchain. Peff explained that it's possible because "Git has very few external dependencies", and other than that, Git "just depends on a reasonable C compiler and a POSIX libc, both of which have been standardized for decades".
Then Fabio reported a segfault in the version he had built. Peff reproduced it and showed how to work around it.
Fabio thanked Peff and asymptosis. He said he would "go on studying Git this way, and follow all the improvements that were made along its history".
- Bitbucket Server 6.2
- Gerrit Code Review 2.13.14, 2.14.20, 2.15.13
- GitHub Enterprise 2.16.6, 2.15.11, 2.14.18, 2.16.5, 2.15.10, 2.14.17, 2.13.23
- GitLab 11.10, 11.9.8, 11.9.7, 11.9.6, 11.9.4, 11.9.1, 11.9
- GitKraken 5.0.4, 5.0.3, 5.0.2, 5.0.1, 5.0.0
Various
- Highlights from Git 2.21 on GitHub Blog.
- 6 new Bitbucket Cloud features that spark joy.
- Announcing Building Git by James Coglan; some of the articles about diff and merge algorithms that form a part of this book were covered in Git Rev News Edition #25.
Light reading
- Sending patches by email with Git by Matheus Tavares and https://git-send-email.io/ by sourcehut are two articles on how to setup and use Git's send-email command.
- Learn by Contributing by Andrew Goldis, about how contributing to open source projects helps you to improve your professional skills and discover new opportunities.
- Writing Good Source Control Commit Messages by Rachel Soderberg; the slightly controversial part might be leaving out the information that can be found in issue tracker.
- Using Graph Theory to Decide Where to Start Reading Source Code by Aron Lurie (connecting files that are changed together, and finding "central" nodes in that graph).
- Tips for a disciplined git workflow by Drew DeVault.
- 5 Free Courses to Learn Git and GitHub in Depth by javingpaul.
- 15 Git Commands You May Not Know by Zaiste.
- 10 insanely useful Git commands you wish existed – and their alternatives by Eyar Zilberman.
- Don’t Commit Improperly Formatted Go (golang) Code - use git hooks, by Cory LaNou.
- How does git bisect choose the commit to test? by Julien 'jma' Mascart (2017).
- Fun with bisecting by Junio C Hamano aka Gitster (2011).
Git tools and sites
- Gitlet.js by Mary Rose Cook is Git implemented in JavaScript, written to show how Git works under the covers (written to be readable and heavily commented).
- git-rs: Git, implemented in Rust, for fun and education.
- Git Cheat Sheets: Reference sheets covering Git commands, features, SVN migrations, and bash. Available in multiple languages.
- Giistr: Contribute to build the open-source world. Search, filter and help easily on the issues of the [GitHub] repositories you starred.
- BDFL: A 100% accurate simulation of OSS maintenance: A silly clicker game featuring graphs.
This edition of Git Rev News was curated by Christian Couder <christian.couder@gmail.com>, Jakub Narębski <jnareb@gmail.com>, Markus Jansen <mja@jansen-preisler.de> and Gabriel Alcaras <gabriel.alcaras@telecom-paristech.fr> with help from Luca Milanesio.