[llvm-dev] [cfe-dev] Phabricator -> GitHub PRs?
Renato Golin via llvm-dev
llvm-dev at lists.llvm.org
Tue Jan 28 08:25:19 PST 2020
On Tue, 28 Jan 2020 at 15:41, James Y Knight <jyknight at google.com> wrote:
> In order to track the commits, it uses a "logical identity" for a commit (similar to Phabricator's "Differential Revision:" line), separate from the commit hash. A local commit hook is used to automatically generate a random number (well, it's a hash of something, but may-as-well be a random number), and appends it to the commit message (e.g. "Change-Id: I0123456789abcdef0123456789abcdef01234567"). This ID subsequently serves as the review permalink and identity. Because it's in the message, it's preserved across rebases and amends.
I find Phab's handling of the differential revision as confusing as
Gerrit's commit IDs. On simple cases, it does help. When the updates
are extensive and conflicting, they both fall apart.
Of course, this is up to personal preferences. I don't want to start
any long thread about that topic, I don't think it's worth it. :)
> Gerrit also makes it easy to upload an entire branch worth of commits -- just "git push" your branch to the magic-review-upload "branch" on the server. When you do that, every commit on your local branch either creates a new review or updates the existing review automatically. And all the reviews are linked together, so you can see the entire chain of reviews for the branch. (example, see "Relation Chain" on the right: https://go-review.googlesource.com/c/go/+/216221/2).
That is true. In that sense, Gerrit is better than GH. But GH still
allows you to update your branch and push and the review does get
updated, and to me, that's better (personally) than Phab.
> ...But I'm not sure bringing up yet another tool really helps anything here...sorry. =p
I don't think we should consider Gerrit, but it's good to know what
other tools do, so that we can have a better perspective on the ones
we're actually considering.
The GH PR way may not be the most full featured but it's simple, "good
enough" (again, personal), and very cheap to maintain.
It'll also make trivial for people to fork LLVM on GH and send PRs.
More information about the llvm-dev