Skip to content

Commit e69baa0

Browse files
committed
rn-8: Add Luke Diamand's interview
1 parent 5059987 commit e69baa0

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed

rev_news/drafts/edition-8.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,101 @@ This edition covers what happened during the month of September 2015.
2929
### Support
3030
-->
3131

32+
## Developer Spotlight: Luke Diamand
33+
34+
Q. Who are you, and what do you do?
35+
36+
A. I've been writing software since my uncle got me hooked with a TI-56
37+
calculator and a TRS-80 model 2. Right now, I'm working for Roku,
38+
(making cool new video streaming hardware :-) which currently involves
39+
a lot of fairly low-level digging around in SoC software.
40+
41+
Q. What would you name your most important contribution to Git?
42+
43+
A. My fix to git-p4, to make it stream commits into fast-import,
44+
rather than buffer them all up in memory first. I did it out of
45+
desperation.
46+
47+
At the time, I'd just been working for a tiny startup which was also
48+
making video streaming products, but sadly not making any
49+
profits. While there, I'd become hooked on git after watching "those"
50+
videos.
51+
52+
So when I found myself at Broadcom in about 2008, and started trying
53+
to use Perforce, almost the first thing I did was try to use
54+
git-p4. But at the time, it read everything into memory using an
55+
O(n^2) algorithm, which meant it would use up all of the swap space
56+
available (no matter how much you had) and then crash after a couple
57+
of days.
58+
59+
These days of course, if you've got a problem the answer is on
60+
stackoverflow (if you can think of it, it's already been done) but
61+
back then, we had nothing like that. Eventually I found a patch from
62+
Andrew Oakley which hinted at the solution. Inspired by this, I taught
63+
git-p4 to stream commits at fast-import (as the writers of fast-import
64+
presumably intended) and suddenly I could use git at work. Which was
65+
completely awesome!
66+
67+
With a good deal of help from Pete Wyckoff and Junio I then got it
68+
submitted; that process itself was a massive eye opener as to how to
69+
_really_ review code (and how to write shell script as well).
70+
71+
I spent the next few years trying to encourage everyone else in the
72+
office to use git and submitted a few more patches to git-p4 along the
73+
way. We finally switched over, and then the office was closed down!
74+
75+
Which is how it is I now find myself working side-by-side with the
76+
very same Andrew Oakley who wrote that original patch - he's now at
77+
Roku as well!
78+
79+
Q. What are you doing on the Git project these days, and why?
80+
81+
A. It's all git-p4 related. I've got a tiny fix that lets you work on
82+
a detached head; that's just waiting for a bit of bandwidth.
83+
84+
After that, there's a few things I've thought about. It would be very
85+
handy to be able to turn a P4 shelved changelist into a git commit
86+
(and vice-versa). And I think it ought to be possible to teach git-p4
87+
to act in a "daemon" mode, whereby it gets notified of changes and
88+
automatically pushes them into Perforce, and pulls Perforce changes
89+
back into git. I've had something like that going in the past but it
90+
was an ugly hack.
91+
92+
A. If you could get a team of expert developers to work full time on
93+
something in Git for a full year, what would it be?
94+
95+
Performance on big repos would be nice. Quite a few people have tried
96+
in the past so maybe it's just impossible, but for example, I did
97+
wonder if more could be done with cache prefetching (pld instruction
98+
on ARM) to slurp data into the cache faster. Since I'm pretty much
99+
completely ignorant of the internals of git, I'm able to be free of
100+
the boring constraints of reality :-)
101+
102+
And I'd really like a way to painlessly teach people to use git who
103+
only know about traditional revision control systems (e.g. Perforce).
104+
105+
Q. If you could remove something from Git without worrying about
106+
backwards compatibility, what would it be?
107+
108+
I think Junio already removed it. That "feature" where git push would
109+
push all of the branches rather than just HEAD. It had me completely
110+
confused when I was first starting.
111+
112+
Q. What is your favorite Git-related tool/library, outside of Git
113+
itself?
114+
115+
I really like Gerrit, although the prolog configuration makes my head
116+
hurt. And of course Github has to get a mention - it's making git (and
117+
hence sane version control) ubiquitous. There was a question about it
118+
the other day on a mountain bike forum I follow!
119+
120+
Q. What is your favourite new feature in git?
121+
122+
`git commit --fixup`
123+
124+
I only found this recently, it's just brilliant. Thank you, whoever it was put that in!
125+
126+
32127
## Releases
33128

34129

0 commit comments

Comments
 (0)