* workflow with blessed, lieutenant, and developers
@ 2010-08-09 6:21 Mihamina Rakotomandimby
2010-08-09 7:42 ` Joshua Juran
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Mihamina Rakotomandimby @ 2010-08-09 6:21 UTC (permalink / raw)
To: git
Manao ahoana, Hello, Bonjour,
I read http://whygitisbetterthanx.com/#any-workflow.
I might not understand everything but this is what I woudl like to
implement.
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)
Developers pull/clone from the blessed repository.
I initially clone from the blessed repository.
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?
Thank you for any tips :-)
Misaotra, Thanks, Merci.
--
Architecte Informatique chez Blueline/Gulfsat:
Administration Systeme, Recherche & Developpement
+261 34 56 000 19
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: workflow with blessed, lieutenant, and developers
2010-08-09 6:21 workflow with blessed, lieutenant, and developers Mihamina Rakotomandimby
@ 2010-08-09 7:42 ` Joshua Juran
2010-08-09 7:57 ` Matthieu Moy
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Joshua Juran @ 2010-08-09 7:42 UTC (permalink / raw)
To: Mihamina Rakotomandimby; +Cc: git
On Aug 8, 2010, at 11:21 PM, Mihamina Rakotomandimby wrote:
> I would like to setup a similar thing but with
> - Only one lieutenant (me)
In Linux terminology, you would be the benevolent dictator, not the
lieutenant. The lieutenants are those you trust to submit good patches.
> - A blessed repository where I am the only one to push to
Okay, though I might use the term 'official'.
> - Developers who push to me (the lieutenant)
Developers shouldn't push directly into your working repo. If you
don't want to use pull requests (where a developer tells you when a
branch is ready for you to pull into your own repo) then you can have
a centralized bare Git repository for them to push to. Either they
will push completed branches which you then merge into mainline (which
is essentially the same as the pull request model, except the
developers are sharing a repo for this purpose), or the developers
themselves will do the merging in the developer repo, which you then
pull into your working repo, and after vetting it push to the offical
repo.
> Developers pull/clone from the blessed repository.
> I initially clone from the blessed repository.
>
> 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?
If you're going to manage a project, you need to spend enough time
learning how Git works that you can answer these questions yourself.
There are multiple good resources online. I suggest starting with a
tutorial, and then experimenting to see what works and what doesn't
before you actually try to start working for real. Along the way
you'll find Google very helpful.
Josh
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: workflow with blessed, lieutenant, and developers
2010-08-09 6:21 workflow with blessed, lieutenant, and developers Mihamina Rakotomandimby
2010-08-09 7:42 ` Joshua Juran
@ 2010-08-09 7:57 ` Matthieu Moy
2010-08-09 19:30 ` Jared Hance
2010-08-13 16:47 ` Enrico Weigelt
3 siblings, 0 replies; 5+ messages in thread
From: Matthieu Moy @ 2010-08-09 7:57 UTC (permalink / raw)
To: Mihamina Rakotomandimby; +Cc: git
Assuming you actually want what you want:
Mihamina Rakotomandimby <mihamina@gulfsat.mg> writes:
> 1°) What command line do developers use to push to me but not to the
> blessed (origin)?
For example:
git remote add submission <your repository URL>
and then, submit with
git push HEAD:submission/branch-name
> 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?
Actually, you have the choice between "push" and "don't push", and you
can complement the later with "git branch -D" to delete the branch.
> 3°) I push the merge of approved commits to the blessed repository:
> what keywords and git options?
What do you want that "git push" doesn't do?
Now, you may not really want this ;-). Here are some alternatives:
* Use a system like github/gitorious/giroco/gitolite, that allows you
to manage a set of repositories with shared storage, on a single
site. Take gitorious, for example. People would clone the blessed
repository (like http://gitorious.org/project/repo.git) online
(costs almost nothing thanks to shared storage). They get a remote
repository like http://git.gitorious.org/~user/project/own-repo.git.
Then get a local copy. They would push to
http://git.gitorious.org/~user/project/own-repo.git, notify you of
the changes (by email, or using gitorious itself), and you'd pull
from them and push to the blessed repository. This way, each user
has his own private local repository, and his submission repository.
You avoid people messing their submission with each other.
* Look at code review tools like gerrit. I've never used them so I
can't say much more.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: workflow with blessed, lieutenant, and developers
2010-08-09 6:21 workflow with blessed, lieutenant, and developers Mihamina Rakotomandimby
2010-08-09 7:42 ` Joshua Juran
2010-08-09 7:57 ` Matthieu Moy
@ 2010-08-09 19:30 ` Jared Hance
2010-08-13 16:47 ` Enrico Weigelt
3 siblings, 0 replies; 5+ messages in thread
From: Jared Hance @ 2010-08-09 19:30 UTC (permalink / raw)
To: git
On Mon, Aug 09, 2010 at 09:21:52AM +0300, Mihamina Rakotomandimby wrote:
> 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)
There are multiple lieutenants, or none. You are the (possible
benevolent) dictator in this case.
> Developers pull/clone from the blessed repository.
> I initially clone from the blessed repository.
>
> 1°) What command line do developers use to push to me but not to the
> blessed (origin)?
Developers don't push to someone else. They can either:
1) Send an email to the dictator requesting a pull
2) Send an email to the mailing list requesting a pull and review
3) Send patches to the mailing list requesting integration and review
I don't recomend #1 because #2 is strictly better. #3 has a specific
command: git-format-patch
When using #2/#3, its useful to have the developers CC the maintainer
of the project.
Developers usually need to push to a public branch at a hosting site
like github or repo.or.cz.
> 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?
Add the remote and fetch. Then merge the branch into your master (or
whatever branch you choose).
In the case of patches on a mailing list, you need to copy them to a
mailbox (for example, in Mutt, I use t to tag the group and ;C to copy
them all into a mbox) and use git-am to apply all the patches (you
should do this in a new branch). You can then choose to merge the
branch in.
> 3°) I push the merge of approved commits to the blessed repository:
> what keywords and git options?
git push origin
Make sure you remember that Git is not a replacement for
communication. There should be a way for people to review patches
BEFORE they are applied to the blessed repository.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: workflow with blessed, lieutenant, and developers
2010-08-09 6:21 workflow with blessed, lieutenant, and developers Mihamina Rakotomandimby
` (2 preceding siblings ...)
2010-08-09 19:30 ` Jared Hance
@ 2010-08-13 16:47 ` Enrico Weigelt
3 siblings, 0 replies; 5+ messages in thread
From: Enrico Weigelt @ 2010-08-13 16:47 UTC (permalink / raw)
To: git
* Mihamina Rakotomandimby <mihamina@gulfsat.mg> 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: weigelt@metux.de
mobile: +49 151 27565287 icq: 210169427 skype: nekrad666
----------------------------------------------------------------------
Embedded-Linux / Portierung / Opensource-QM / Verteilte Systeme
----------------------------------------------------------------------
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-08-13 16:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-09 6:21 workflow with blessed, lieutenant, and developers Mihamina Rakotomandimby
2010-08-09 7:42 ` Joshua Juran
2010-08-09 7:57 ` Matthieu Moy
2010-08-09 19:30 ` Jared Hance
2010-08-13 16:47 ` Enrico Weigelt
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).