4 Keeping customizations outside OpenADK
5 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7 The OpenADK project recommends and encourages upstreaming to the
8 official OpenADK version the packages and board support that are
9 written by developers. However, it is sometimes not possible or
10 desirable because some of these packages or board support are highly
11 specific or proprietary.
13 In this case, OpenADK users are offered following choice using
14 here own git repository.
16 * Initialize your project
18 Personalize your Git environment via:
21 $ git config --global user.name "Waldemar Brodkorb"
22 $ git config --global user.email wbx@openadk.org
25 Get the latest version of OpenADK via anonymous git:
28 $ git clone --bare git://openadk.org/git/openadk myadk.git
31 Use git-daemon to make the repository public to your developers. After that clone your new shared project repository:
34 $ git clone git+ssh://myserver.com/git/myadk.git
38 Configure OpenADK remote git repository:
41 $ git remote add openadk git://openadk.org/git/openadk
44 * Create your firmware
46 Now you can either start with the latest version or use some older version:
49 $ git checkout -b stable_1_0 $sha1
51 You can find $sha1 via git log. $sha1 is the hash after the keyword “commit”.
53 Now build a firmware image for your target and test it. Fix bugs in the build
54 environment or add new stuff. You can use the “extra” directory to add local
55 unpackaged binaries and/or configuration files to overwrite packaged stuff.
57 Check your uncommitted changes:
65 Commit your git-added changes:
70 Or just commit all changes:
75 It is a good style to make a lot of small atomic commits.
77 Push your changes back to your git repository.
78 For new local branches:
81 $ git push origin stable_1_0
84 Or in regulary usage via:
89 * Working together with OpenADK
91 You can generate patches from all your changes against the remote master:
94 $ git format-patch -s origin
97 Send all relevant patches to OpenADK author via eMail.
99 Update your master with changes from OpenADK:
101 ---------------------
102 $ git checkout master
103 $ git pull openadk master
104 ---------------------
106 If you want you can merge all changes to your branch:
108 ---------------------
109 $ git checkout stable_1_0
111 ---------------------
113 Or just cherry-pick some of the commits:
115 ---------------------
116 $ git cherry-pick $sha1
117 ---------------------
121 Tag your tested stable branch:
123 ---------------------
124 $ git tag -a stable_1.0
125 ---------------------
126 Push your tag to your repository:
128 ---------------------
129 $ git push origin stable_1.0
130 ---------------------
132 Checkout your tag and build your firmware:
134 ---------------------
135 $ git clone git+ssh://myserver.com/git/myadk.git mytag
137 $ git checkout stable_1.0
138 ---------------------
140 * Deleting unused branches
142 Deleting branches remotely:
144 ---------------------
146 $ git push origin :branchname
147 ---------------------
149 Deleting branches locally:
151 ---------------------
153 $ git branch -D branchname
154 ---------------------