@@ -29,9 +29,118 @@ This edition covers what happened during the month of December 2020.
2929### Support
3030-->
3131
32- <!-- -
33- ## Developer Spotlight:
34- -->
32+ ## Developer Spotlight: Sergey Organov
33+
34+ * Who are you and what do you do?
35+
36+ I'm a software engineer and system architect at JAVAD GNSS, working in its
37+ Moscow Research Center, in Russia. We design (and manufacture) high-end
38+ GNSS receivers, both hardware and software. Design and implementation of
39+ receivers firmware is my primary job for about 25 years already. I'm
40+ also responsible for the development tools our team is using, and that's
41+ where GNU/Linux and then Git come to the picture.
42+
43+ Graduated from "Moscow Engineering Physics Institute" back in 1989 and
44+ qualified in "Experimental Methods in Nuclear Physics", I was always
45+ interested in computing. I then worked for about 10 years in "Kurchatov
46+ Institute" in the field of computer modeling of nuclear radiation and
47+ detectors, as well as in advanced processing of experimental results.
48+ Then a few years later started to work for JAVAD as well, in parallel.
49+ Then, a few more years later, left Kurchatov and entirely focused on
50+ working for JAVAD full-time which is my current job.
51+
52+ Real-time embedded applications, also using Linux on the targets, is my
53+ primary field of expertise nowadays.
54+
55+ * What would you name your most important contribution to Git?
56+
57+ I didn't contribute much. I'd name the method of rebasing of merge
58+ commits, that has been [ covered in the Git Rev News] ( https://git.github.io/rev_news/2018/04/18/edition-38#general )
59+ some time ago, as the most important one.
60+
61+ * What are you doing on the Git project these days, and why?
62+
63+ Right now I'm working on ` --diff-merges ` options for ` git log ` . The
64+ original stimulus was very surprising output of ` git log -p -m ` that
65+ made me mad the first time I encountered it. After finishing initial
66+ implementation of the ` --diff-merges ` options, I now aim at finally giving
67+ ` git log -m ` natural meaning of printing the diff for merge commits with
68+ respect to the first parent only.
69+
70+ * If you could get a team of expert developers to work full time on
71+ something in Git for a full year, what would it be?
72+
73+ Actually, I have 2 favorites:
74+
75+ 1 . Designing support for explicit commits grouping, somewhat similar to
76+ grouping objects in graphical editors, likely implemented as a container
77+ commit capturing particular part of the DAG. It'd be then seen as a
78+ single commit by default, unless user specifically asks to look inside.
79+ If we had it, our typical history would be more linear, feature branches
80+ essentially becoming single (group) commits, that'd make history simpler
81+ to traverse and to reason about.
82+
83+ Right now the only poor-man estimate for that is a branch that is merged
84+ back to its origin (the true-non-evil merge, as I call it), that brings
85+ history that looks like a sequence of bubbles, but it lacks direct
86+ support that specific grouping feature would have.
87+
88+ 2 . Designing new history editor that will aim at being ultimate
89+ replacement for both ` git rebase ` and ` git cherry-pick ` that are
90+ essentially the same thing at fundamental level. As useful as these
91+ existing features are, they have wide opportunities for improvements
92+ that apparently don't fit into the current design, and their history of
93+ incremental adaptations to different needs made quite a mess of them.
94+
95+ Covering all the functionality of rebase and cherry-pick, the two most
96+ important new features I'd like to see are:
97+
98+ - Ensuring, by design, one of the primary features of any reasonable
99+ editing tool: carefully preserve the content if no actual editing has
100+ been made or requested. This should be ensured even if the tool is
101+ forced to do the full job of re-creating the history according to the
102+ instructions. I.e., the cycle: load/mark-as-modified/save should bring
103+ the original result by default.
104+
105+ - Better replacement for todo lists. Carefully designed format for
106+ describing DAG in a text form convenient for humans and for editing with
107+ text editor, with simple yet strictly defined syntax and semantics,
108+ preferably supporting generic programming language features. For
109+ example, it could be based on some existing language, say, Tcl. Yet it
110+ should take the best features of the current format and look familiar
111+ enough to be immediately useful without significant learning cycle.
112+
113+ [ That said, do we need two teams of expert developers for that, or one
114+ would suffice, I wonder?]
115+
116+ * If you could remove something from Git without worrying about
117+ backwards compatibility, what would it be?
118+
119+ Support for octopus merges. Multiple (back) references could then be
120+ reused for more useful things, like keeping history of rebasing, and/or
121+ for commits grouping (see above).
122+
123+ * If you could add something to Git without worrying about
124+ backwards compatibility, what would it be?
125+
126+ I'd add a simple model behind Git command-line options, so that their
127+ design came from the model rather than entirely from the use-cases, as
128+ it happens to be now. It'd play similar positive role in UI design as
129+ Git core data model plays in the features design.
130+
131+ Then, I sometimes think about addition of single NULL-commit, the
132+ ultimate parent of all the Git commits all over the world. I'm not sure
133+ it has enough value in simplifying corner cases in git implementation,
134+ but it fits so nice into the elegant Git data model!
135+
136+ * What is your favorite Git-related tool/library, outside of Git
137+ itself?
138+
139+ Emacs and the Magit, its interface to Git, in particular, as well as a
140+ few parts of Emacs generic VC interface that features Git among others.
141+ The Magit got to the point already where I rarely find myself using Git
142+ command-line directly, and then mostly for some batch-processing, or on
143+ hosts where Emacs is not readily available.
35144
36145## Releases
37146
0 commit comments