Project

General

Profile

Dev » History » Version 5

Jules Waldhart, 2015-04-17 11:18

1 1 Jules Waldhart
h1. Instructions for developers
2
3 3 Jules Waldhart
4
 
5
> See for [[CodingRules|Coding Rules]], here is for setting up your workspace.
6
7
8
9 1 Jules Waldhart
The new main repo for move3d is here now (at least for us). Project admins are in charge of keeping it up to date with the official move3d repos (on trac.laas.fr). We will work with a pull request system, and try to involve everyone in the reviews, to ensure the best possible quality for each part and aspect of move3d.
10
11
So, where to start? You will have to setup your workspace to use these repos instead of the trac.laas.fr ones, and use the workflow required for this project management system.
12
13
h2. Workspace set-up
14
15
h3. Change remote
16
17
Short version: in git, a remote is a server.
18
You will change trac.laas.fr to this repo on your local copy using git commands. So, cd to your move3d(planner/hri/studio) local copy and do the following:
19
<pre>
20
git remote set-url origin ssh://git@redmine.laas.fr/laas/users/jwaldart/move3d/[planners, hri, libmove3d, studio].git
21
</pre>
22
23
24
@origin@ is the default name usually given to remotes, esp. when using @git clone@. Yours is maybe different, use @git remote show@ to check the list of remotes and @git remote show <name>@ to see details.
25
26
You may want to add a remote instead of changing origin, use the @git remote add@ command instead:
27
<pre>
28
git remote add redmine ssh://git@redmine.laas.fr/laas/users/jwaldart/move3d/...
29
</pre>
30
31
h3. Add remote for pushing
32
33
You first need to create your own remote repo, where you will push your changes, and from which project maintainers will pull when you requet it. You then add it to the remotes:
34
<pre>
35
git remote add perso <url>
36
</pre>
37
38
You will push to it using @git push perso <branch>@ where @<branch>@ is the branch you want to push *to* (usually master).
39
40
You will pull form the main repo: @git pull origin <branch>@
41
42
43
*TODO*: how to set default pull/push destinations.
44 2 Jules Waldhart
45
h2. Workflow
46
47
h3. Pull-request
48
49
Once you modifications are done and you are ready to publish your work, first do some checks, be sure it successfully builds, and push it to your personal repository.
50
Then go to the redmine page of the main project and click the "new issue" tab ("Nouvelle demande" (fr)). Create a new pull-request and fill the form. Do not forget to specify the url of your personal repo (either hosted by redmine or on any machine at LAAS for instance) and the branch you want the maintainer to pull from.
51
52
Specify the assignee, and add any person you think can be interested by your work.
53
54
h3. Review
55 4 Jules Waldhart
56 5 Jules Waldhart
*this is a proposal*
57
58
h4. if you have uncommitted work, stash it first:
59
60
<pre>
61
git stash
62
</pre>
63
(don't forget to unstash it at the end with @git stash pop@)
64
65
h4. Create a new branch to put the work of the developer for the review:
66
67
<pre>
68
git checkout -b review <redmine-remote>/<main-branch>
69
</pre>
70
(_e.g._ @git checkout -b review origin/master@ or @git checkout -b review redmine/master@ according to your configuration)
71
72
You are now in the branch @review@:
73
<pre>
74
$ git branch
75
  master
76
* review
77
</pre>
78
The state is the one from the repo, in the branch you indicated. (use @git log@ to confirm that) Your latter modifications aren't present.
79
80
81
h4. Pull the work of the developer into this branch:
82
83
<pre>
84
git pull <url> <branch>
85
</pre>
86
87
@<url>@ and @<branch>@ are the one indicated by the developer, they point to its own repository and the branch he wants you to pull _from_
88
89
h4. Review
90
91
You have the state to be reviewed. Read, compile, test, give your opinion clicking on "edit" in the pull request. In the text field that appears you can put your comments. You change the status to "feedback" for instance to indicate that you have reviewed the code.
92
93
h4. Accepting the pull-request
94
95
If enough positive advices are collected in the pull-request, it can be pulled into the main repository (here). To do so, push the branch @review@  into the desired branch on the redmine remote:
96
97
<pre>
98
git push <remdine-remote>/<branch>
99
</pre>
100
_e.g._ @git push origin/master@
101
102
h4. Go back to your own work
103
104
<pre>
105
git checkout master
106
[ git stash pop ] #only if you stashed something before changing to the branch @review@
107
</pre>
108
Will put you back into the state you were before the starting the review.
109
110
<pre>
111
git branch -d review
112
</pre>
113
Will delete the branch @review@. git should refuse, invoking an excuse like "the branch review is not merged in master". Here you have the choice to
114
force the deletion by asking louder: @git branch -D review@ or to actually do what git suggest, _i.e._ merging the branch into master:
115
<pre>
116
git merge review
117
</pre>
118
119
This will pull the work you reviewed in your master branch.
120
As would @git pull origin master@ if the pull-request has been accepted and pushed into the main remote.
121 4 Jules Waldhart
122
123
124
---