We're currently using Gerrit 2.1.6.1 and have started to notice a subtle behavior in the way gerrit shows its review diffs that 'allowed' some regressions to creep into our codebase.
The problem, as I see it is that the "base" revision of a review is the parent commit of the first patch set. Normally this isn't a problem and shows the diffs fine as you're committing against that patch, but in the case where someone has rebased a review onto a newer base - Gerrit now shows the changes from both the review AND the rebase - which gets mighty confusing, and in some cases actually hides changes that will be merged if the review is accepted.
The scenario I have is as follows ( assuming I can draw it properly )
- master
- develop - point-1
+- feature/review-a - review commit here
+- feature/review-b - review commit here
In the above we have two feature branches off the same parent commit on develop, if we review and accept accept review-a's commits and merge them into the develop branch, then rebase review-b ontop of develop:
- master
- develop - point-2 ( contains feature/review-a )
+- feature/review-b - review commit here
and push for review again, making new patch sets for our review, the diff's for the review will now include/show the diffs from review-a as being part of review-b, as the diff is made against the point-1 commit, rather than point-2.
I can see reasons for the current behavior, as you want to see -ALL- changes in this review, however after going back and forth on some (unfortunately) long standing reviews which after repeated rebases/push-for-reviews I ended up with something like 20+ patch sets, which grow exponentially due to pulling in changes from every other review that had been accepted.
Is there a way in Gerrit to make "base" point to the current reviews parent SHA? Or maybe to add a new entry in the patch history list for this new base?
If not, should I raise a bug ticket for this?
Mark
Does Gerrit have any ability to do a sort of higher level diff-of-diffs?I (and many of my colleagues) commonly have this problem. We'll upload ps1, make some changes, rebase, upload ps2, and now a reviewer will want to see what changed between ps1 and ps2.Gerrit gives you the ability to see the diff between ps1 and ps1^ easily enough, the diff between ps2 and ps2^, and the diff between ps1 and ps2 (including ancestors), but what this leaves out is the ability to see what the diff between the *diff of ps1 and ps1^* and the *diff of ps2 and ps2^* is. Which is the only thing actually semantically interesting to me as a reviewer.What do other people do for this problem? If nothing right now, may I suggest a diff-of-diffs feature?
-JT
--
To unsubscribe, email repo-discuss...@googlegroups.com
More info at http://groups.google.com/group/repo-discuss?hl=en