1 |
Daniel Campbell: |
2 |
> As a prospective Gentoo developer, having a guide around meant |
3 |
> specifically for Gentoo's practices would be incredibly helpful. I use |
4 |
> git in my own hobby development and learned from Pro Git, et al, but |
5 |
> it'd still be really nice to have, and give developers a place to |
6 |
> point to if a new developer is having troubles. |
7 |
> |
8 |
> Just my 2ยข. |
9 |
> |
10 |
|
11 |
First draft and only the basic ebuild workflow. |
12 |
|
13 |
1. do the work (including removing files) |
14 |
|
15 |
2. run 'repoman manifest' |
16 |
|
17 |
3. stage files via 'git add <files>' (including removed ones) |
18 |
|
19 |
4. run 'repoman full' and check for errors |
20 |
=> if errors occur, fix them and continue from point 2 |
21 |
|
22 |
5. commit files via 'repoman commit -m "<message>"' |
23 |
|
24 |
6. push to the dev repository via 'git push origin master' |
25 |
=> if updates were rejected because of non-fast-forward push, try 'git |
26 |
pull --rebase=preserve origin master' first, then run 'repoman full' and |
27 |
continue from point 6. |
28 |
|
29 |
NOTE: you may skip running repoman another time if you have manually |
30 |
verified that the commits you are missing are totally unrelated to your |
31 |
work (e.g. only affect a package that is not in the dependency chain of |
32 |
yours). You can do so via: 'git diff $(git merge-base master |
33 |
remotes/origin/master) remotes/origin/master' |
34 |
|
35 |
==> if 'git pull --rebase=preserve origin master' fails or yields |
36 |
complicated conflicts, continue with a regular merge (you might have to |
37 |
abort the rebase via 'git rebase --abort' first): 'git merge |
38 |
remotes/origin/master' |
39 |
|
40 |
===> if merge conflicts occur, fix them via 'git mergetool' and continue |
41 |
from point 2. |
42 |
|
43 |
===> if no merge conflicts occur, run 'repoman full' and continue from |
44 |
point 6. |
45 |
|
46 |
|
47 |
TODO: guide for merging user pull requests |