[Cryptech Core] git repository usage patterns and access control

Peter Stuge peter at stuge.se
Tue Oct 7 05:33:40 UTC 2014


Joachim Strömbergson wrote:
> > | 2) Same as (1), but adopt a github-like work pattern where 
> > developers |    who want to hack each other's code fork the 
> > repository.  gitolite
> > 
> > This is what I would suggest. I'd also like to explain how I like 
> > software projects with multiple developers and git. If this model 
> > suits the work flow for Cryptech too, I don't know.
> > 
> > For a given "project" (i.e. repository), each developer has their
> > own repository. Perhaps under /user/$NAME/. Only $NAME can push to
> > repos under /user/$NAME/.
> > 
> > For a given "project", there is also "the main" repository, or 
> > perhaps better "the official" repository. One or more (hopefully at 
> > least two) maintainers have push access to it. They merge changes 
> > from topic branches in other repositories into this official 
> > repository. This is where we point people. This is what we make 
> > releases from.
> 
> Yes. This is what we want. IMHO.

It's a tried and proven way which works well.

Maybe now is a time to mention review. I'm a big fan of Gerrit to
help with review. If everyone takes review seriously then Gerrit is a
big help, it takes care of all the practical bits, and it makes sure
that nothing ends up in the official repo without review.

NOTE: Taking review seriously neccessarily requires a VERY different
development pace than not doing review! Progress will slow down
significantly.

The flip side is that everyone who is doing review will learn about
the code they are reviewing and maybe also identify issues which can
be addressed before commits enter the official repo.

Instead of developers pushing to their personal repos and asking a
merge lieutenant to include their branches into official, with Gerrit
developers propose commits for official by pushing to Gerrit, where
other developers review, and upon favorable review the merge
lieutenants "submit" the commits in Gerrit - which is what includes
them into official. >90% of Gerrit interactions are available via
SSH and could be scripted.

Only Gerrit would be allowed to write to the official repo master
branch. (To reduce risk of confusion, maybe not just master but the
whole repo.)


> (And yes, me asking for write access to Pauls repo was actually wrong.)

Not neccessarily, but you and Paul should have agreed on how you
would use the shared repo.


//Peter



More information about the Core mailing list