I don't intend to weigh in on either side, but just give a perspective on a few questions asked.
From an outsiders perspective, that list isn't what I'd typically describe as the workflow, since it makes "fork" and "branch" sound like difficult operations. This sounds akin to thinking that someone would reclone the svn repo before working on a new commit—possible, but rather extreme. The distributed nature of git means that the fork is pretty simple for github (essentially creates a new branch in their database, but that is just defining a new name for an existing commit).
FWIW, I've not found it to be so straightforward in practice. If you have multiple LLVM forks, representing different distinct projects, because GitHub only lets you have one fork per account, the process via which you can work with multiple derived projects is actually quite annoying.
I didn't quite get why you need multiple forks for a given canonical repository? Maybe you're trying to setup a non-LLVM sub-project being developed in a fork of the LLVM repo?
Yes. If I have one project on optimizations of accelerator constructs of LLVM, and I have another project on adding quantum-computing extensions to LLVM, and a third project on an LLVM-based high-level-synthesis tool, then I want three separate forks. When someone getting these repositories runs 'git branch -a', they should only see branches related to the project on which they're working, and each repository should contain only data files and history related to that project (which might be large). In addition, each of these projects needs to have its own wiki pages, track its own bugs, etc. To put it another way, when someone grabs some fork on LLVM on which I'm working, it's not "Hal's LLVM that happens to have a branch that does X", but rather, "A named fork of LLVM for a particular project". Moreover, any of these projects might have changes that we want to pull into a branch for upstream contribution.
Right that makes sense: it think for such purpose I wouldn’t use a personal fork of the canonical repo, I would likely just create a new repo for the purpose of this project (GitHub would not track this as a « fork » directly, but that shouldn’t matter that much for developing such a project would it?
Yes, but then I can't create pull requests from them, right? That's the unfortunate part.
).
Actually using llvm-commits@ or Phab does not make it easier does it?
When uploading patches to Phab, it doesn't matter from where it comes.
-Hal
Best,