Philip Oakley wrote: > On 01/06/2021 17:35, Felipe Contreras wrote: > > Philip Oakley wrote: > >> On 01/06/2021 13:12, Felipe Contreras wrote: > >>> So it's more like: > >>> > >>> centralized = ~decentralized > >>> triangular = ~two-way > >>> > >>> A centralized workflow consists of a single repository where branches > >>> are typically two-way, but not necessarily. > >>> > >>> A decentralized workflow consists of multiple repositories where > >>> branches are typically triangular, but not necessarily. > >>> > >>> So the triangularity is per branch, not per repository, and same_repo > >>> means a two-way branch, could be a centralized or decentralized > >>> workflow. > >> My personal viewpoint is that triangular flow happens when you cannot > >> push to the repo you consider as upstream. > > It's not about permissions. Even if I had permissions to push to git.git, > > I wouldn't do so. I do have permission to push to some public projects, but I > > instead send patches/pull requests like everyone else. > > I had it that if you don't have permissions then you definitely need to > use a Triangular flow. Hence how I was presenting the view. If you don't have permissions you have no option but a triangular flow. If you are in a triangular flow that doesn't necessarily mean you don't have permissions. > >> A thought did come to mind that a Git serve/repo (typically bare) should > >> be able to offer a 'refs/users/*' space (c.f. refs/remotes used by > >> individual users) that allows a type of 'centralised' operation (almost > >> as if all the users used a common alternates repo). Users could only > >> push to their own /user refs, but could pull from the main refs/heads, > >> and their own refs/users/ space. > >> > >> This would give flexibility to smaller corporate central operations to > >> offer 'triangular flow' where each dev would feel like they have their > >> own 'push' repo, when in reality it's really personalised branches. As > >> usual the authentication of user names being handed off elsewhere;-). It > >> could avoid some of the --alternate management aspects. > >> > >> It's a thought.. > > Yeah, and interesting thought. But it demonstrates what I said above: > > you can have a central repository, and yet have triangular branches: > > I see triangular being about repos, rather than branches. If you have a feature-1 branch that fetches from origin, rebases onto origin/master, but pushes to origin/feature-1... Does that qualify as triangular? -- Felipe Contreras