Skip to content

Commit

Permalink
rn-40: add Nico's interview
Browse files Browse the repository at this point in the history
  • Loading branch information
chriscool committed Jun 16, 2018
1 parent 8554c50 commit 97b833a
Showing 1 changed file with 76 additions and 4 deletions.
80 changes: 76 additions & 4 deletions rev_news/drafts/edition-40.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -133,4 +205,4 @@ Christian Couder &lt;<[email protected]>&gt;,
Jakub Narębski &lt;<[email protected]>&gt;,
Markus Jansen &lt;<[email protected]>&gt; and
Gabriel Alcaras &lt;<[email protected]>&gt;
with help from Adam Spiers.
with help from Adam Spiers and Nicolas Pitre.

0 comments on commit 97b833a

Please sign in to comment.