@@ -29,6 +29,101 @@ This edition covers what happened during the month of September 2015.
29
29
### Support
30
30
-->
31
31
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
+
32
127
## Releases
33
128
34
129
0 commit comments