1 |
Rich Freeman: |
2 |
> |
3 |
> This is one of the blockers. We haven't actually decided how we want |
4 |
> to use git. |
5 |
> |
6 |
|
7 |
There are IMO 3 main things to consider for a git workflow: |
8 |
* commit policy |
9 |
* branching model |
10 |
* remote model |
11 |
(and history format somewhere implicitly) |
12 |
|
13 |
Deciding on a _commit policy_ should be fairly straightforward and we |
14 |
already have one point |
15 |
* gpg sign every commit (unless it's a merged branch, then we only care |
16 |
about the merge commit) |
17 |
|
18 |
More things to consider for commit policy are: |
19 |
* commit message format (line length, maybe prepend category/PN?) |
20 |
* do we expect repoman to run successfully for every commit (I'd say no)? |
21 |
* additional information that must be provided |
22 |
* when to force/avoid merge commits |
23 |
|
24 |
Deciding on _branching model_ should be pretty easy here too. We are |
25 |
mainly working on master and there may be developer-specific branches etc. |
26 |
History does not need to be linear. |
27 |
Creating additional branches is up to developers and there are no |
28 |
specific rules about that. |
29 |
|
30 |
The _remote model_ is: use a central repository with every developer |
31 |
having push access. I think this is pretty reasonable for our use case, |
32 |
although I'd love to see a linux-like workflow with enforced reviews |
33 |
that propagate through project members/leads. But I'm not sure we need |
34 |
that much overhead, except for non-trivial stuff like eclasses where we |
35 |
already require reviews (well, more or less). |
36 |
|
37 |
|
38 |
The only hard part is that people have to know the differences between |
39 |
merging/rebasing, fast-forward merges, non-fast-forward merges etc. and |
40 |
when and when not to do them. |
41 |
|
42 |
'git rebase' is a powerful thing, but also pretty good to mess up your |
43 |
local history if used wrong. |
44 |
|
45 |
I think we can write up a gentoo-specific guide in 2-3 weeks. |