diff options
| -rw-r--r-- | documentation/Makefile | 7 | ||||
| -rw-r--r-- | documentation/kernel-manual/kernel-how-to.xml | 100 |
2 files changed, 75 insertions, 32 deletions
diff --git a/documentation/Makefile b/documentation/Makefile index 5272ee58bd..c3c6a3c7e3 100644 --- a/documentation/Makefile +++ b/documentation/Makefile | |||
| @@ -209,7 +209,7 @@ ifeq ($(DOC),ref-manual) | |||
| 209 | XSLTOPTS = --xinclude | 209 | XSLTOPTS = --xinclude |
| 210 | ALLPREQ = html pdf eclipse tarball | 210 | ALLPREQ = html pdf eclipse tarball |
| 211 | TARFILES = ref-manual.html ref-style.css figures/poky-title.png \ | 211 | TARFILES = ref-manual.html ref-style.css figures/poky-title.png \ |
| 212 | figures/buildhistory.png figures/buildhistory-web.png eclipse | 212 | figures/buildhistory.png figures/buildhistory-web.png eclipse |
| 213 | MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse | 213 | MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse |
| 214 | FIGURES = figures | 214 | FIGURES = figures |
| 215 | STYLESHEET = $(DOC)/*.css | 215 | STYLESHEET = $(DOC)/*.css |
| @@ -245,8 +245,9 @@ TARFILES = profile-manual.html profile-manual.pdf profile-manual-style.css \ | |||
| 245 | figures/perf-wget-g-copy-to-user-expanded-stripped-unresolved-hidden.png figures/pybootchartgui-linux-yocto.png \ | 245 | figures/perf-wget-g-copy-to-user-expanded-stripped-unresolved-hidden.png figures/pybootchartgui-linux-yocto.png \ |
| 246 | figures/pychart-linux-yocto-rpm.png figures/pychart-linux-yocto-rpm-nostrip.png \ | 246 | figures/pychart-linux-yocto-rpm.png figures/pychart-linux-yocto-rpm-nostrip.png \ |
| 247 | figures/sched-wakeup-profile.png figures/sysprof-callers.png \ | 247 | figures/sched-wakeup-profile.png figures/sysprof-callers.png \ |
| 248 | figures/sysprof-copy-from-user.png figures/sysprof-copy-to-user.png | 248 | figures/sysprof-copy-from-user.png figures/sysprof-copy-to-user.png \ |
| 249 | MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf | 249 | eclipse |
| 250 | MANUALS = $(DOC)/$(DOC).html $(DOC)/$(DOC).pdf $(DOC)/eclipse | ||
| 250 | FIGURES = figures | 251 | FIGURES = figures |
| 251 | STYLESHEET = $(DOC)/*.css | 252 | STYLESHEET = $(DOC)/*.css |
| 252 | endif | 253 | endif |
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> |
