Skip to content

Commit bac2dd0

Browse files
committed
Wrote merging to master
Also tweaked the old details about cherry picking into master, so the reader can understand why we're doing this complicated approach.
1 parent fbb9cf9 commit bac2dd0

File tree

1 file changed

+31
-3
lines changed

1 file changed

+31
-3
lines changed

docs/Developer/GitFlow.md

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,14 +163,42 @@ gitGraph TB:
163163
commit
164164
```
165165

166-
### Merging to Master
166+
### Merging to Master and Making a Release
167167

168+
Once the shared development branch is ready to merge back to the master, we create a release branch. We then merge the shared development branch into the release branch, do final testing (including manual tests for GPU, etc.), fix any problems, merge into master, and create a release.
168169

170+
```mermaid
171+
%%{init: { 'logLevel': 'debug', 'theme': 'base', 'themeVariables': {
172+
'git0': '#2E9AFE',
173+
'gitInv0': '#2E9AFE',
174+
'git1': '#A829FF',
175+
'git2': '#FFBF00',
176+
'git3': '#8FED0A',
177+
'git4': '#A4A4A4',
178+
'git5': '#8FED0A',
179+
'git6': '#A4A4A4',
180+
'tagLabelFontSize': '12px'
181+
},'gitGraph': {'rotateCommitLabel': true, 'showBranches': true, 'showCommitLabel':false, 'mainBranchName': 'Master'}} }%%
182+
gitGraph TB:
183+
commit
184+
branch SharedDev order: 2
185+
checkout Master
186+
checkout SharedDev
187+
commit
188+
checkout Master
189+
branch Release order: 1
190+
merge SharedDev
191+
commit
192+
checkout Master
193+
merge Release type: HIGHLIGHT tag: "v1.2"
194+
checkout SharedDev
195+
merge Release
196+
```
169197

170-
Once the development branch is ready to merge back to the master, we create a release branch (not supported in our document). Our version can either cherry-pick the developments we want into the master or revert the changes and merge to the master and re-revert the changes (not supported in the document).
171198

199+
# Why are we doing this?
172200

173-
## Detailed Run-Through of Making a Release
201+
The information below is left-over details relating to how we used to do a release, when we only had one development branch and cherry-picked commits to merge into a release branch. Unfortunately, cherry picking doesn't preserve commit hashes, and so git eventually gets hopelessly confused about conflicts and merging into master then becomes very difficult.
174202

175203
The basic idea is to create a release branch off of `master`, then cherry pick the commits we want to incorporate into this release. So, first of all, we want to get a list of all of the commits in `development` that aren't in `master`:
176204

0 commit comments

Comments
 (0)