summaryrefslogtreecommitdiffstats
path: root/documentation/kernel-manual
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2013-02-14 17:30:09 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-02-14 17:30:09 +0000
commit72fdc8ed09ca82008c57b7bc8a090d25332def37 (patch)
tree5c4cc901513587ae10a4de513d41e132fe0d55bb /documentation/kernel-manual
parente57f8627beda2c2b133b55135ce7aec814993592 (diff)
downloadpoky-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.xml100
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 (&lt;kernel-type&gt;..&lt;bsp&gt;-&lt;kernel-type&gt;), <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 &gt; git whatchanged &lt;kernel type&gt;..&lt;kernel type&gt;/&lt;bsp&gt; 297 for the branch (<filename>&lt;commit&gt;..&lt;commit&gt;</filename>).
290 &gt; eg: git whatchanged yocto/standard/base..yocto/standard/common-pc/base 298 </para>
291 299
292 # summary of the changes 300 <para>
293 &gt; git log --pretty=oneline --abbrev-commit &lt;kernel type&gt;..&lt;kernel type&gt;/&lt;bsp&gt; 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 &gt; git diff &lt;kernel type&gt;..&lt;kernel type&gt;/&lt;bsp&gt; 314 To see a summary of changes use the <filename>git log</filename> command.
297 &gt; git show &lt;kernel type&gt;..&lt;kernel type&gt;/&lt;bsp&gt; 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 &gt; git format-patch -o &lt;dir&gt; &lt;kernel type&gt;..&lt;kernel type&gt;/&lt;bsp&gt; 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 &gt; git whatchanged &lt;path to file&gt; 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 &gt; git blame &lt;path to file&gt; 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>