I've been using Gerrit before my team moved to Stash.
Stash is much more user friendly, but I miss some features of Gerrit that are great.
Use case 1: Two chained PR
PR 1: implement server side logic for a given use case
PR 2: implement client side logic for the same use case
PR 2 needs the code of PR 1, so it includes all the commits of PR 1
With the current status of Stash (we use 3.4 for now), the diff view of PR 2 shows diff against master, and it cannot be properly reviewed until PR 1 is merged, otherwise, you see commits of both PR 1 and PR 2 in the diff view of PR 2.
In Gerrit, you see only the diff of PR 2, the only restriction is that you cannot merge it before PR 1 is merged (which is fine).
Any plan to achieve this with Stash ?
Minimalist solution would be a to be able to choose the reference branch/commit for the diff view.
Best would be to show the diff against the other PR.
Use case 2: Revisions to a PR
- Developer opens a pull request.
- Reviewer comments
- Developer updates the pull request
- Reviewer wants to see what changed, to assess if the comments were properly handled
In Gerrit, there is the notion of patch set, which is a 'version' of the pull request. In the diff view, it is possible to select against what you diff. It can be the base of the PR, or any previous patch set. It makes it super easy to see what was updated.
Solution to implement that in Stash would be either:
- Be able to pick against which commit you diff
- Create a new 'version' of the pull request each time someone pushes to the branch and allow user to choose against which 'version' to have the diff view
Is that something you would consider ?
Thanks for reading and for developing this great product!