diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-02-14 17:30:09 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-02-14 17:30:09 +0000 |
commit | 72fdc8ed09ca82008c57b7bc8a090d25332def37 (patch) | |
tree | 5c4cc901513587ae10a4de513d41e132fe0d55bb /documentation/kernel-manual | |
parent | e57f8627beda2c2b133b55135ce7aec814993592 (diff) | |
download | poky-72fdc8ed09ca82008c57b7bc8a090d25332def37.tar.gz |
yocto-docs: Fixup a couple of merge issues
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'documentation/kernel-manual')
-rw-r--r-- | documentation/kernel-manual/kernel-how-to.xml | 100 |
1 files changed, 71 insertions, 29 deletions
diff --git a/documentation/kernel-manual/kernel-how-to.xml b/documentation/kernel-manual/kernel-how-to.xml index f29a0a865a..9d9aef6d06 100644 --- a/documentation/kernel-manual/kernel-how-to.xml +++ b/documentation/kernel-manual/kernel-how-to.xml | |||
@@ -246,10 +246,10 @@ | |||
246 | </para> | 246 | </para> |
247 | 247 | ||
248 | <section id='change-inspection-kernel-changes-commits'> | 248 | <section id='change-inspection-kernel-changes-commits'> |
249 | <title>Change Inspection: Kernel Changes/Commits</title> | 249 | <title>Change Inspection: Changes/Commits</title> |
250 | 250 | ||
251 | <para> | 251 | <para> |
252 | A common question when working with a BSP or kernel is: | 252 | A common question when working with a kernel is: |
253 | "What changes have been applied to this tree?" | 253 | "What changes have been applied to this tree?" |
254 | </para> | 254 | </para> |
255 | 255 | ||
@@ -257,53 +257,95 @@ | |||
257 | In projects that have a collection of directories that | 257 | In projects that have a collection of directories that |
258 | contain patches to the kernel, it is possible to inspect or "grep" the contents | 258 | contain patches to the kernel, it is possible to inspect or "grep" the contents |
259 | of the directories to get a general feel for the changes. | 259 | of the directories to get a general feel for the changes. |
260 | This sort of patch inspection is not an efficient way to determine what has been done to the | 260 | This sort of patch inspection is not an efficient way to determine what has been |
261 | kernel. | 261 | done to the kernel. |
262 | The reason it is inefficient is because there are many optional patches that are | 262 | The reason it is inefficient is because there are many optional patches that are |
263 | selected based on the kernel type and the feature description. | 263 | selected based on the kernel type and the feature description. |
264 | Additionally, patches could exist in directories that are not included in the search. | 264 | Additionally, patches could exist in directories that are not included in the search. |
265 | </para> | 265 | </para> |
266 | 266 | ||
267 | <para> | 267 | <para> |
268 | A more efficient way to determine what has changed in the kernel is to use | 268 | A more efficient way to determine what has changed in the branch is to use |
269 | Git and inspect or search the kernel tree. | 269 | Git and inspect or search the kernel tree. |
270 | This method gives you a full view of not only the source code modifications, | 270 | This method gives you a full view of not only the source code modifications, |
271 | but also provides the reasons for the changes. | 271 | but also provides the reasons for the changes. |
272 | </para> | 272 | </para> |
273 | 273 | ||
274 | <section id='what-changed-in-a-bsp'> | 274 | <section id='what-changed-in-a-kernel'> |
275 | <title>What Changed in a BSP?</title> | 275 | <title>What Changed in a Kernel?</title> |
276 | 276 | ||
277 | <para> | 277 | <para> |
278 | Following are a few examples that show how to use Git to examine changes. | 278 | Following are a few examples that show how to use Git commands to examine changes. |
279 | Because the Yocto Project Git repository does not break existing Git | 279 | Because Git repositories in the Yocto Project do not break existing Git |
280 | functionality and because there exists many permutations of these types of | 280 | functionality, and because there exists many permutations of these types of |
281 | commands, there are many more methods to discover changes. | 281 | Git commands, many methods exist by which you can discover changes. |
282 | <note> | 282 | <note> |
283 | Unless you provide a commit range | 283 | In the following examples, unless you provide a commit range, |
284 | (<kernel-type>..<bsp>-<kernel-type>), <filename>kernel.org</filename> history | 284 | <filename>kernel.org</filename> history is blended with Yocto Project |
285 | is blended with Yocto Project changes. | 285 | kernel changes. |
286 | You can form ranges by using branch names from the kernel tree as the | ||
287 | upper and lower commit markers with the Git commands. | ||
288 | You can see the branch names through the web interface to the | ||
289 | Yocto Project source repositories at | ||
290 | <ulink url='http://git.yoctoproject.org/cgit.cgi'></ulink>. | ||
291 | For example, the branch names for the <filename>linux-yocto-3.4</filename> | ||
292 | kernel repository can be seen at | ||
293 | <ulink url='http://git.yoctoproject.org/cgit.cgi/linux-yocto-3.4/refs/heads'></ulink>. | ||
286 | </note> | 294 | </note> |
287 | <literallayout class='monospaced'> | 295 | To see a full range of the changes, use the |
288 | # full description of the changes | 296 | <filename>git whatchanged</filename> command and specify a commit range |
289 | > git whatchanged <kernel type>..<kernel type>/<bsp> | 297 | for the branch (<filename><commit>..<commit></filename>). |
290 | > eg: git whatchanged yocto/standard/base..yocto/standard/common-pc/base | 298 | </para> |
291 | 299 | ||
292 | # summary of the changes | 300 | <para> |
293 | > git log --pretty=oneline --abbrev-commit <kernel type>..<kernel type>/<bsp> | 301 | Here is an example that looks at what has changed in the |
302 | <filename>emenlow</filename> branch of the | ||
303 | <filename>linux-yocto-3.4</filename> kernel. | ||
304 | The lower commit range is the commit associated with the | ||
305 | <filename>standard/base</filename> branch, while | ||
306 | the upper commit range is the commit associated with the | ||
307 | <filename>standard/emenlow</filename> branch. | ||
308 | <literallayout class='monospaced'> | ||
309 | $ git whatchanged origin/standard/base..origin/standard/emenlow | ||
310 | </literallayout> | ||
311 | </para> | ||
294 | 312 | ||
295 | # source code changes (one combined diff) | 313 | <para> |
296 | > git diff <kernel type>..<kernel type>/<bsp> | 314 | To see a summary of changes use the <filename>git log</filename> command. |
297 | > git show <kernel type>..<kernel type>/<bsp> | 315 | Here is an example using the same branches: |
316 | <literallayout class='monospaced'> | ||
317 | $ git log --oneline origin/standard/base..origin/standard/emenlow | ||
318 | </literallayout> | ||
319 | The <filename>git log</filename> output might be more useful than | ||
320 | the <filename>git whatchanged</filename> as you get | ||
321 | a short, one-line summary of each change and not the entire commit. | ||
322 | </para> | ||
298 | 323 | ||
299 | # dump individual patches per commit | 324 | <para> |
300 | > git format-patch -o <dir> <kernel type>..<kernel type>/<bsp> | 325 | If you want to see code differences associated with all the changes, use |
326 | the <filename>git diff</filename> command. | ||
327 | Here is an example: | ||
328 | <literallayout class='monospaced'> | ||
329 | $ git diff origin/standard/base..origin/standard/emenlow | ||
330 | </literallayout> | ||
331 | </para> | ||
301 | 332 | ||
302 | # determine the change history of a particular file | 333 | <para> |
303 | > git whatchanged <path to file> | 334 | You can see the commit log messages and the text differences using the |
335 | <filename>git show</filename> command: | ||
336 | Here is an example: | ||
337 | <literallayout class='monospaced'> | ||
338 | $ git show origin/standard/base..origin/standard/emenlow | ||
339 | </literallayout> | ||
340 | </para> | ||
304 | 341 | ||
305 | # determine the commits which touch each line in a file | 342 | <para> |
306 | > git blame <path to file> | 343 | You can create individual patches for each change by using the |
344 | <filename>git format-patch</filename> command. | ||
345 | Here is an example that that creates patch files for each commit and | ||
346 | places them in your <filename>Documents</filename> directory: | ||
347 | <literallayout class='monospaced'> | ||
348 | $ git format-patch -o $HOME/Documents origin/standard/base..origin/standard/emenlow | ||
307 | </literallayout> | 349 | </literallayout> |
308 | </para> | 350 | </para> |
309 | </section> | 351 | </section> |