Subject: Re: workflow with blessed, lieutenant, and developers

From: Enrico Weigelt <[email-masked]>
Date: Fri, 13 Aug 2010 18:47:36 +0200

* Mihamina Rakotomandimby <[email-masked]> wrote:

Hi,

> I would like to setup a similar thing but with 
> - Only one lieutenant (me)
> - A blessed repository where I am the only one to push to
> - Developers who push to me (the lieutenant)

if you really want them to push to you (instead of pull-requests),
you could set up an ssh-based git repo, which restricts your devs
to just their own branches (via .ssh/authorized_keys and wrapper
commands) and do whatever you like (eg. generating pull-requests,
open a ticked in some issue tracker, etc) in the post-update hook.

> 1°) What command line do developers use to push to me but not to the
> blessed (origin)?
> 2°) After they pushed to me, I have the choice to "approve" or "reject"
> a commit: what is the keyword and git option for that?
> 3°) I push the merge of approved commits to the blessed repository:
> what keywords and git options?

depends on your branch naming scheme.

man 1 git-push

you could even go some steps further and hack up wrappers/hooks
which let your dev's pushes to the main repo / mainline branch
to somewhere else (aka: masquerading). lets say your dev "Max"
pushes to master, this will actually create some new branch
"approveme/Max/$timestamp" instead of updating master itself.
now you can regularily look through these branches and decide 
whether to merge or drop them. 
(BTW: I'd recommend always rebasing to master before merging
into it - less chance of conflicts and cleaner history). 

what you need is:

a) ssh key-authentication with individual per-user commands,
   which pass the dev's pushes to intermediate/temporary
   per-user repositories. 
b) hack up an post-update hook in the intermediate repo(s),
   which push their updates into the main repo with proper
   rewritten ref names (eg. "approveme/$username/$timestamp).

cu
-- 
----------------------------------------------------------------------
 Enrico Weigelt, metux IT service -- http://www.metux.de/

 phone:  +49 36207 519931  email: [email-masked]
 mobile: +49 151 27565287  icq:   210169427         skype: nekrad666
----------------------------------------------------------------------
 Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme
----------------------------------------------------------------------