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.htm...
-- Amir Elisha Aharoni · אָמִיר אֱלִישָׁע אַהֲרוֹנִי http://aharoni.wordpress.com “We're living in pieces, I want to live in peace.” – T. Moore