Repository » Historial » Versió 43
Jorge L. Florit, 09-03-2016 17:02
1 | 40 | Simó Albert i Beltran | h1. Repository workflow |
---|---|---|---|
2 | 35 | Simó Albert i Beltran | |
3 | 1 | Pau Escrich | h2. Structure |
4 | |||
5 | The qMp git repository is split in three branches: |
||
6 | |||
7 | # Master |
||
8 | # Testing |
||
9 | 23 | Simó Albert i Beltran | # Other: Features/Bugfixes |
10 | 1 | Pau Escrich | |
11 | h3. Master |
||
12 | |||
13 | This is the main branch and all changes committed here must be tested in Testing branch before. |
||
14 | |||
15 | 6 | Simó Albert i Beltran | However the small bugfixes can be directly applied here. These changes must be merged in the testing branch. |
16 | 1 | Pau Escrich | |
17 | 10 | Simó Albert i Beltran | <pre> |
18 | o---o---o---o---o master |
||
19 | \ |
||
20 | --o---o---o---o---o testing |
||
21 | </pre> |
||
22 | |||
23 | 22 | Simó Albert i Beltran | *Example:* |
24 | 30 | Anònim | <pre><code class="shell"> |
25 | 32 | Simó Albert i Beltran | git checkout origin/testing |
26 | git merge origin/master |
||
27 | 29 | Simó Albert i Beltran | </code></pre> |
28 | 22 | Simó Albert i Beltran | |
29 | |||
30 | 1 | Pau Escrich | h3. Testing |
31 | |||
32 | 8 | Simó Albert i Beltran | This is the branch for test new features and changes. The features must be already working features tested before in a specific branch by at least the developer. A feature can be committed here only when it is finished, but not in a middle state. |
33 | 1 | Pau Escrich | |
34 | 41 | Simó Albert i Beltran | When the testing branch are deeply tested by more than one developer, than it can be merged on the master branch. Each developer can specify the commit that he thinks is a candidate to merge in master with a signed tag. |
35 | 11 | Simó Albert i Beltran | |
36 | <pre> |
||
37 | o---o---o---o---o master |
||
38 | \ / |
||
39 | --o---o---o---o testing |
||
40 | </pre> |
||
41 | |||
42 | 16 | Pau Escrich | *Example:* |
43 | 11 | Simó Albert i Beltran | |
44 | 16 | Pau Escrich | Import master bugfixes to testing |
45 | 30 | Anònim | <pre><code class="shell"> |
46 | 32 | Simó Albert i Beltran | git checkout origin/testing |
47 | git merge origin/master |
||
48 | 29 | Simó Albert i Beltran | </code></pre> |
49 | 16 | Pau Escrich | |
50 | Merge testing changes in master |
||
51 | 30 | Anònim | <pre><code class="shell"> |
52 | 1 | Pau Escrich | git checkout origin/master |
53 | 41 | Simó Albert i Beltran | git merge origin/testing |
54 | </code></pre> |
||
55 | |||
56 | Add a signed tag |
||
57 | <pre><code class="shell"> |
||
58 | git tag -s master_candidate_mynick -m "Proposal to update master branch by MyName." |
||
59 | git push origin master_candidate_mynick |
||
60 | 29 | Simó Albert i Beltran | </code></pre> |
61 | 16 | Pau Escrich | |
62 | 12 | Simó Albert i Beltran | h3. Other: Features/Bugfixes |
63 | 1 | Pau Escrich | |
64 | 8 | Simó Albert i Beltran | The rest of the branches are temporal branches. |
65 | |||
66 | 26 | Simó Albert i Beltran | h4. Features |
67 | |||
68 | 34 | Simó Albert i Beltran | If it is about a new feature the name of the branch must be the name of the feature (of some name which identifies it). These branches are considered non-functional, so a non-finished feature can be committed here. This branch should preferably be based on a commit of master branch. Once the feature is finish and tested by at least the developer, it should be merged to testing and other branches. |
69 | 1 | Pau Escrich | |
70 | 9 | Simó Albert i Beltran | <pre> |
71 | o---o---o---o---o master |
||
72 | 14 | Simó Albert i Beltran | \ |
73 | 9 | Simó Albert i Beltran | o---o---o issue#23-new-feature |
74 | 14 | Simó Albert i Beltran | \ |
75 | 9 | Simó Albert i Beltran | o---o---o---o---o testing |
76 | </pre> |
||
77 | |||
78 | 16 | Pau Escrich | *Example:* |
79 | 9 | Simó Albert i Beltran | |
80 | 30 | Anònim | <pre><code class="shell"> |
81 | 24 | Simó Albert i Beltran | git checkout -b issue#23-new-feature origin/master |
82 | editor dir/file |
||
83 | 25 | Simó Albert i Beltran | git add dir/file |
84 | 24 | Simó Albert i Beltran | git commit |
85 | #test issue#23-new-feature branch |
||
86 | 32 | Simó Albert i Beltran | git checkout origin/testing |
87 | 24 | Simó Albert i Beltran | git merge issue#23-new-feature |
88 | 29 | Simó Albert i Beltran | </code></pre> |
89 | 24 | Simó Albert i Beltran | |
90 | 27 | Simó Albert i Beltran | h4. Bugfixes |
91 | 24 | Simó Albert i Beltran | |
92 | 33 | Simó Albert i Beltran | A bugfix must be implemented in a new branch. This branch must be based on a commit of the master branch. This branch should not be based on a commit of the testing branch because it may contain new features and these maybe cannot be imported in the master branch. This new branch can be merged in testing and other branches. |
93 | 7 | Simó Albert i Beltran | |
94 | <pre> |
||
95 | o---o---o---o---o master |
||
96 | 1 | Pau Escrich | \ / |
97 | 9 | Simó Albert i Beltran | o---o---o issue#23-bugfix |
98 | 7 | Simó Albert i Beltran | \ |
99 | o---o---o---o---o testing |
||
100 | </pre> |
||
101 | 16 | Pau Escrich | |
102 | *Example:* |
||
103 | 1 | Pau Escrich | |
104 | 30 | Anònim | <pre><code class="shell"> |
105 | 28 | Simó Albert i Beltran | git checkout -b issue#23-bugfix origin/master |
106 | editor dir/file |
||
107 | git add dir/file |
||
108 | git commit |
||
109 | #test issue#23-bugfix branch |
||
110 | git checkout origin/testing |
||
111 | git merge issue#23-bugfix |
||
112 | git checkout origin/master |
||
113 | git merge issue#23-bugfix |
||
114 | 29 | Simó Albert i Beltran | </code></pre> |
115 | 28 | Simó Albert i Beltran | |
116 | |||
117 | 43 | Jorge L. Florit | *Another example:* |
118 | <pre><code class="shell"> |
||
119 | git checkout -b my-new-branch \ |
||
120 | $( |
||
121 | git merge-base \ |
||
122 | --octopus origin/master origin/testing origin/kalimotxo \ |
||
123 | ) |
||
124 | |||
125 | editor file |
||
126 | git add file |
||
127 | git commit -m "My change" |
||
128 | git checkout origin/master |
||
129 | git merge my-new-branch -m "Import my change" |
||
130 | git checkout origin/testing |
||
131 | git merge my-new-branch -m "Import my change" |
||
132 | git checkout origin/kalimotxo |
||
133 | git merge my-new-branch -m "Import my change" |
||
134 | git push |
||
135 | </code></pre> |
||
136 | |||
137 | |||
138 | |||
139 | 1 | Pau Escrich | h2. How to use it |
140 | |||
141 | 2 | Pau Escrich | |
142 | h2. Good practices |