Tagging » History » Version 7
Herbert Greenlee, 02/12/2015 11:40 AM
1 | 5 | Herbert Greenlee | {{toc}} |
---|---|---|---|
2 | 2 | Herbert Greenlee | |
3 | 5 | Herbert Greenlee | h1. Tagging a branch for release (manual method) |
4 | 2 | Herbert Greenlee | |
5 | 5 | Herbert Greenlee | Releases are built from the @master@ branch. This recipe shows how to create a tag on the @master@ branch of a git repository. |
6 | 2 | Herbert Greenlee | |
7 | 3 | Herbert Greenlee | First, get your local copies of develop and master branches up to date with the main repository. |
8 | 1 | Herbert Greenlee | <pre> |
9 | 4 | Herbert Greenlee | cd $MRB_SOURCE/<package> |
10 | 3 | Herbert Greenlee | git checkout develop |
11 | 3 | Herbert Greenlee | git pull |
12 | 2 | Herbert Greenlee | git checkout master |
13 | 2 | Herbert Greenlee | git pull |
14 | 2 | Herbert Greenlee | </pre> |
15 | 2 | Herbert Greenlee | |
16 | 2 | Herbert Greenlee | Then update master with changes from develop or other source branch. |
17 | 2 | Herbert Greenlee | <pre> |
18 | 2 | Herbert Greenlee | git merge develop |
19 | 2 | Herbert Greenlee | </pre> |
20 | 1 | Herbert Greenlee | |
21 | 4 | Herbert Greenlee | At this point, you can make further changes to your master branch, including the version number of the package being tagged and version numbers of dependent products, both stored in product_deps. After making all updates, it is a good idea to do a full test build, including tests. |
22 | 1 | Herbert Greenlee | <pre> |
23 | 4 | Herbert Greenlee | cd $MRB_BUILDDIR |
24 | 4 | Herbert Greenlee | mrb i -j4 |
25 | 4 | Herbert Greenlee | mrb t -j4 |
26 | 4 | Herbert Greenlee | </pre> |
27 | 4 | Herbert Greenlee | When you are done updating master, commit and push your changes to the main repository. |
28 | 4 | Herbert Greenlee | <pre> |
29 | 4 | Herbert Greenlee | cd $MRB_SOURCE/<package> |
30 | 2 | Herbert Greenlee | git commit |
31 | 2 | Herbert Greenlee | git push origin master |
32 | 2 | Herbert Greenlee | </pre> |
33 | 2 | Herbert Greenlee | |
34 | 2 | Herbert Greenlee | Now make the actual tag and push the tag to the main repository. |
35 | 2 | Herbert Greenlee | <pre> |
36 | 2 | Herbert Greenlee | git tag -a -m"v02_05_01" v02_05_01 # Annotated tag. |
37 | 2 | Herbert Greenlee | git push origin v02_05_01 # Or git push --tags |
38 | 2 | Herbert Greenlee | </pre> |
39 | 2 | Herbert Greenlee | If you want to move an existing tag, you need to add option @-f@ or @--force@ to the last two commands. |
40 | 2 | Herbert Greenlee | |
41 | 2 | Herbert Greenlee | If you made changes directly on the master branch, like updating the version number in product_deps, you should merge these back into the develop branch. |
42 | 2 | Herbert Greenlee | <pre> |
43 | 1 | Herbert Greenlee | git checkout develop |
44 | 1 | Herbert Greenlee | git merge master |
45 | 1 | Herbert Greenlee | git push origin develop |
46 | 5 | Herbert Greenlee | </pre> |
47 | 5 | Herbert Greenlee | |
48 | 5 | Herbert Greenlee | h1. Tagging a branch for release (git flow release branch method) |
49 | 5 | Herbert Greenlee | |
50 | 5 | Herbert Greenlee | First, get your local copies of develop and master branches up to date with the main repository. |
51 | 5 | Herbert Greenlee | <pre> |
52 | 5 | Herbert Greenlee | cd $MRB_SOURCE/<package> |
53 | 5 | Herbert Greenlee | git checkout develop |
54 | 5 | Herbert Greenlee | git pull |
55 | 5 | Herbert Greenlee | git checkout master |
56 | 5 | Herbert Greenlee | git pull |
57 | 5 | Herbert Greenlee | </pre> |
58 | 5 | Herbert Greenlee | |
59 | 5 | Herbert Greenlee | Use git flow to create a release branch in your local repository. Git flow creates the release branch from the head of develop. |
60 | 5 | Herbert Greenlee | <pre> |
61 | 5 | Herbert Greenlee | git flow release start v03_08_02 |
62 | 5 | Herbert Greenlee | </pre> |
63 | 5 | Herbert Greenlee | |
64 | 7 | Herbert Greenlee | After this command, the newly created release branch will be the checked out branch. At this point, you can update your release branch, including updating the version number and dependencies of the package being released in @ups/product_deps@. After making all updates, it is a good idea to do a full test build, including tests. |
65 | 5 | Herbert Greenlee | <pre> |
66 | 5 | Herbert Greenlee | cd $MRB_BUILDDIR |
67 | 5 | Herbert Greenlee | mrb i -j4 |
68 | 5 | Herbert Greenlee | mrb t -j4 |
69 | 5 | Herbert Greenlee | </pre> |
70 | 5 | Herbert Greenlee | When you are done updating the release branch, commit updates to your local repository. |
71 | 5 | Herbert Greenlee | <pre> |
72 | 5 | Herbert Greenlee | cd $MRB_SOURCE/<package> |
73 | 5 | Herbert Greenlee | git commit |
74 | 5 | Herbert Greenlee | </pre> |
75 | 5 | Herbert Greenlee | |
76 | 5 | Herbert Greenlee | Use git flow to "finish" the release branch. |
77 | 5 | Herbert Greenlee | |
78 | 5 | Herbert Greenlee | <pre> |
79 | 5 | Herbert Greenlee | git flow release finish -m"v03_08_02" v03_08_02 |
80 | 5 | Herbert Greenlee | </pre> |
81 | 1 | Herbert Greenlee | This command does the following actions. |
82 | 6 | Herbert Greenlee | |
83 | 5 | Herbert Greenlee | * Merges release branch to master. |
84 | 5 | Herbert Greenlee | * Merges release branch to develop. |
85 | 5 | Herbert Greenlee | * Creates a tag on the master branch. |
86 | 1 | Herbert Greenlee | * Deletes the release branch. |
87 | 6 | Herbert Greenlee | * Checks out the develop branch. |
88 | 5 | Herbert Greenlee | |
89 | 5 | Herbert Greenlee | Now push everything up to main repository. |
90 | 1 | Herbert Greenlee | <pre> |
91 | 5 | Herbert Greenlee | git push origin develop master |
92 | 6 | Herbert Greenlee | git push v03_08_02 # Or git push --tags |
93 | 2 | Herbert Greenlee | </pre> |