Hi,
There's something in Gerrit that i still don't get, even after trying
to ask this several times on
mediawiki.org [1] and on IRC. I sincerely
thank everyone who took the time to reply, but either i still
misunderstand the replies or i do understand them and I Just Don't
Like It [2].
Let's consider a patch set i submitted:
https://gerrit.wikimedia.org/r/#change,3361 .
The patch set as i submitted it was not perfect and Aaron marked it
"-1". So far, so good. Then Hashar amended the patch set and
Nikerabbit amended it some more. Now here's what i don't like: The
diffs of their changes show all the changes instead of just showing
Hashar's and Nikerabbit's changes. This is somewhat similar to how we
review patches by new volunteer developers - if the patch attached to
a Bugzilla is not perfect we ask to write a whole new one. That's the
custom, and maybe it's considered educational, but actually its
usefulness is doubtful. Despite this, it is now applied to all the
commits.
Now honestly, the result in the story of this particular patch set is
OK. The resulting patch is better than the first one and the
collaboration worked well. But does this scale? This patch set changes
only a few lines of code; what will happen with patch sets in which
dozens of lines are changed? These happen very often. The reviewer
will have to re-read all the changed lines for every amend and this
looks like a huge waste of time.
It would make a lot more sense to me to see these three changes as a
branch with three commits - the first one is mine, the second one is
Hashar's fix and the third one is Nikerabbit's fix. When there's
agreement that the tip of the branch is good, it's merged to the
master branch. If a reviewer wants to see the whole end-to-end diff,
it's not hard. Mind you, this has nothing to do with SVN - in SVN
branches are used rarely. This, to the best of my understanding, is
the Git way. Git makes this sensible scenario easy, and it is used
successfully in Github - but in the Gerrit workflow this scenario is
not used. I tried reading the Gerrit manual [3] and it didn't make it
any clearer. Yet again, i may be misunderstanding something, so
correct me if i'm wrong; It's really weird that a tool that makes code
review so central makes it a lot harder, too. But that's the feeling
that i get.
Am i just wrong in my understanding of Gerrit?
Am i the only one who doesn't like it?
Is it too late to complain?
[1]
https://www.mediawiki.org/wiki/Talk:Git/Workflow
[2] As in
https://en.wikipedia.org/wiki/Wikipedia:IDONTLIKEIT .
[3]
http://gerrit-documentation.googlecode.com/svn/Documentation/2.2.2/index.ht…
--
Amir Elisha Aharoni · אָמִיר אֱלִישָׁע אַהֲרוֹנִי
http://aharoni.wordpress.com
“We're living in pieces,
I want to live in peace.” – T. Moore