forked from git/git.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
76 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,9 +29,81 @@ This edition covers what happened during the month of May 2018. | |
### Support | ||
--> | ||
|
||
<!--- | ||
## Developer Spotlight: | ||
--> | ||
## Developer Spotlight: Nicolas Pitre | ||
|
||
* Who are you and what do you do? | ||
|
||
I graduated with a software engineering degree from École | ||
Polytechnique de Montréal. I'm currently a software architect on the | ||
OCTO team at Linaro. I spent most of my professional life working on | ||
the Linux kernel for the ARM architecture. And being a code tinkerer | ||
at heart, I am often looking at assembly output from the compiler to | ||
see what it made of my code. | ||
|
||
* How did you get involved in Git? | ||
|
||
When Linus Torvalds announced that he'd be taking a break from kernel | ||
work to dedicate some time to the creation of a new code management | ||
system of his own then I got intrigued. I expected this new system to | ||
have an impact on my kernel work flow so I wanted to test it early on. | ||
And of course I quickly got annoyed by all the shortcomings Git had in | ||
those early days, so I started making patches and became a regular | ||
contributor for a few years. | ||
|
||
* What would you name your most important contribution to Git? | ||
|
||
Delta compression, and object packing heuristics. Getting git-repack | ||
to produce smaller packs and do it faster became an obsession of mine | ||
for a while. | ||
|
||
* If you could get a team of expert developers to work full time on | ||
something in Git for a full year, what would it be? | ||
|
||
The git pack format version 2. This is something I worked on for a | ||
while, from the format definition to the first proof-of-concept | ||
implementation. The initial pack size reduction over the current | ||
format was really interesting (around 20%) and the potential for | ||
significant runtime speed-ups was there in theory. In practice that | ||
meant reworking most of git's inner core code to benefit from all the | ||
direct object references provided by that pack format. The existing | ||
proof of concept simply implemented backward compatibility with the | ||
rest of git which made it slower than the current pack format. And | ||
because the current format is already quite efficient already, this | ||
project was facing diminishing returns and I could no longer justify | ||
the required time to work on it. But... if I could get a team for a | ||
year... | ||
|
||
* As a git user, what functionality would you like to see implemented? | ||
|
||
I really get annoyed when fetching a tracked repository and all the | ||
tags from that remote repo are merged with my own tags, or with tags | ||
from another remote repo. We have a separate namespace for remote | ||
branches but not for remote tags. That makes it very hard to know | ||
where a particular tag comes from, and "git remote rm" doesn't get rid | ||
of them either. This also pollutes the git-describe output. | ||
|
||
I think remote tags should have separate namespaces by default just | ||
like remote branches, with similar disambiguation rules when referring | ||
to a tag using a partial path. That's something I meant to implement | ||
myself for years now but never got around to it. | ||
|
||
* If you could remove something from Git without worrying about | ||
backwards compatibility, what would it be? | ||
|
||
Some of the early choices I made in the delta compression encoding | ||
format. But that format is simply too widely used now to consider | ||
incompatible changes just for the sake of being marginally more | ||
efficient. | ||
|
||
* What is your favorite Git-related tool/library, outside of Git itself? | ||
|
||
I'm pretty much a pure-git user and never got used to any of the | ||
associated tools. I grew my git usage while I was also a git developer | ||
with a pretty good knowledge of its internals and native capabilities. | ||
Most tools on top of git are meant to provide a different user | ||
experience that always gave me the impression they were in the way of | ||
the actual basic git command I wanted to use. | ||
|
||
|
||
## Developer Spotlight: Nicolas Pitre | ||
|
||
|
@@ -133,4 +205,4 @@ Christian Couder <<[email protected]>>, | |
Jakub Narębski <<[email protected]>>, | ||
Markus Jansen <<[email protected]>> and | ||
Gabriel Alcaras <<[email protected]>> | ||
with help from Adam Spiers. | ||
with help from Adam Spiers and Nicolas Pitre. |