{"thread":{"id":"16003","subject":"[irq/urgent]: created 3786fc7: \"irq: make variable static\"","startedAt":"2008-10-22T06:17:30Z","lastAt":"2008-10-26T16:04:19Z","messageCount":11,"participants":["Ingo Molnar","Santi Béjar","Andreas Ericsson","Jakub Narebski","Jeff King","Johannes Schindelin","René Scharfe"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"93650","messageId":"20081022061730.GA5749@elte.hu","threadId":"16003","inReplyTo":null,"subject":"[irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2008-10-22T06:17:30Z","receivedAt":"2008-10-22T06:17:30Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\nGit recently started printing the branch name when creating commits:\n\n  [irq/urgent]: created 3786fc7: \"irq: make variable static\"\n\nvery nice idea IMO! Having it all on one line allows me to double-check \nthat i indeed queued up a patch in the intended topic branch. Had it \nread:\n\n  [irq/urgent]: created 3786fc7: \"printk: make variable static\"\n\ni'd have noticed the mistake immediately.\n\nthis welcome enhancement made me remember of three usage problems i had \nwith Git recently:\n\n1)\n\nBtw., it would be nice if there was an easier way to get a similar git \nlog display in the ASCII space. For example i frequently ask the \nquestion \"which topic branch did commit XYZ originate from?\". All i have \nnow is a pretty crude script that displays this for a given file:\n\nearth4:~/tip> tip-log --no-merges linus.. kernel/sched.c | grep ^#\n# core/kill-the-BKL: ffda12a: sched: optimize group load balancer\n# core/locking: ffda12a: sched: optimize group load balancer\n...\n\n(see the script attached below)\n\nbut it's very slow with 233 branches, obviously, so i only use it as a \nlast resort mechanism.\n\nWhat i'd _love_ to see is just an ASCII representation of where a commit \n\"came from\" into the current branch. The first-hop branch it was \ncommitted to.\n\nit doesnt even have to be correct in the sha1 sense - i.e. it's enough \nfor me if the merge commit log is parsed. (and hence it wont be correct \nif a branch ceases to exist or is renamed - but that is OK, i keep the \nbranch space static)\n\nany ideas how to achieve that? I'd love to have output like this, if i \ndo this from tip/master (the master integration branch):\n\n # mockup\n\n earth4:~/tip> gll --no-merges kernel/sched.c\n ffda12a: [sched/core]      sched: optimize group load balancer\n 8cd162c: [sched/clock]     sched: only update rq->clock while holding\n 0a16b60: [tracing/sched]   tracing, sched: LTTng instrumentation\n a5d8c34: [sched/debug]     sched debug: add name to sched_domain sysctl entries\n 34b3ede: [sched/core]      sched: remove redundant code in cpu_cgroup_create()\n\n... and i dont want to embedd the branch name in every single commit.\n\nThe semantics seem well-specified to me: walk down the merge tree a \nparticular commit came from, and use the branch name that is mentioned \nin a merge commit's comment section 'closest' to this commit.\n\nThat information is not 'trustable' in the sha1 sense because merge \ncommits can be modified manually and because the momentary name of a \nbranch might not be correct anymore - but with a sane topical setup this \nwould be a very powerful visualization tool.\n\nIt would be a nice tool that makes it easy to check the proper structure \nof topical branches, after the fact. Weird, incorrectly queued up \ncommits would stick out _immediately_:\n\n 34b3ede: [x86/xen]      sched: remove redundant code in cpu_cgroup_create()\n\n2)\n\nand while at ASCII representation - this made me remember a problem i \nfrequently have with octopus merges: it's _very_ difficult currently to \n'backtrack' along a higher-order octopus in the git log ASCII space.\n\nI dont use the newfangled flashy GUIs all that frequently and i recently \ntried to go back to double-check the history of this order-21 octopus \nmerge in the upstream Linux kernel:\n\n commit e496e3d645c93206faf61ff6005995ebd08cc39c\n Merge: b159d7a... 5bbd4c3... 175e438... 516cbf3... af2d237... 9b15684... 5b7e41f... 1befdef... a03352d... 7b22ff5... 2c7e9fd...  91030ca... dd55235... b3e15bd... 20211e4... efd327a... c7ffa6c...  e51a1ac... 5df4551... d99e901... e621bd1...\n Author: Ingo Molnar <mingo@elte.hu>\n Date:   Mon Oct 6 18:17:07 2008 +0200\n\n     Merge branches 'x86/alternatives', 'x86/cleanups', 'x86/commandline', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/doc', 'x86/exports', 'x86/fpu', 'x86/gart', 'x86/idle', 'x86/mm', 'x86/mtrr', 'x86/nmi-watchdog', 'x86/oprofile', 'x86/paravirt', 'x86/reboot', 'x86/sparse-fixes', 'x86/tsc', 'x86/urgent' and 'x86/vmalloc' into x86-v28-for-linus-phase1\n\ni wanted to know the history of the 'x86/idle' topical commits. But it \nwas not easy to line up the sha1's to the branch names. So i had to \nmanually edit the commit log, i manually lined up all 21 sha1's to each \nother, just to be able to figure out branch #11 in that lineup.\n\nIs there some more efficient way to do that? Perhaps some git log output \nthat matches up the topic names with the sha1's? [for the cases where \nthe octopus merge commit log message still has a reasonable format]\n\n3)\n\nSimilarly, when doing Octopus merges, and if the merge _fails_, it's \nhard to see exactly which branch failed. For example, when preparing for \nthe v2.6.28 merge window i did something like this at a certain stage:\n\n    git merge x86/alternatives x86/cleanups x86/commandline \\\n              x86/crashdump x86/debug x86/defconfig x86/doc \\\n              x86/exports x86/fpu x86/gart x86/xen x86/idle x86/mm  \\\n              x86/mtrr x86/nmi-watchdog x86/oprofile x86/paravirt \\\n              x86/reboot x86/sparse-fixes x86/tsc x86/urgent \\\n              x86/vmalloc\n\nI got a conflicted octopus merge somewhere in the middle of it. But it \nonly displayed sha1's when doing the merge. When i did a git log of that \nsha1 it was not obvious at first sight which current branch maps to that \nsha1. So i had to binary-search for the branch that caused the conflict \n(!), to figure out that in the above sequence the 'x86/xen' bit is what \nwas causing trouble.\n\nIt would be very nice if the Octopus merge tool displayed not only the \nsha1's that it is merging, but also the refspec that it is processing. \nAnd when it fails it would be nice if it displayed a for-dummies \n\"Octopus merge failed when trying to merge x86/xen\" kind of thing.\n\nSo mapping back sha1's to topic branch names does not seem to be very \neasy at the moment. I realize that it is a fundamentally hard thing to \ndo, and the information is not reliable because branch names are \ntemporary - but in a sane branch setup it would be very nice to have \ntools for that, to keep topics nice and tidy, and to annotate git logs \nwith the topical information.\n\nMaybe there are already tools for that, it's just that i'm ignorant \nabout them?\n\n\tIngo\n\n--------------->\nfor N in $(git branch | grep -vE ' master$| base$|for-linus|auto|linux-next|tmp' | cut -c3-); do\n\n  ITEMS=$(git rev-list --reverse linus..$N -- $@)\n\n  for M in $ITEMS; do\n    echo\n    echo \"# $N: $(git log -1 --pretty=format:\"%h: %s\" $M $@)\"\n    echo\n    git log -1 --pretty=email --no-merges $M $@ | cat\n  done\n\ndone | grep ^#\n"},{"id":"93653","messageId":"adf1fd3d0810220039g51d61e92l5ba254b57723d3b6@mail.gmail.com","threadId":"16003","inReplyTo":"20081022061730.GA5749@elte.hu","subject":"Re: [irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"Santi Béjar","fromEmail":"santi@agolina.net","sentAt":"2008-10-22T07:39:49Z","receivedAt":"2008-10-22T07:39:49Z","isPatch":false,"sender":{"key":"santi@agolina.net","avatar":null},"body":"On Wed, Oct 22, 2008 at 8:17 AM, Ingo Molnar <mingo@elte.hu> wrote:\n[...]\n\n> this welcome enhancement made me remember of three usage problems i had\n> with Git recently:\n>\n> 1)\n>\n> Btw., it would be nice if there was an easier way to get a similar git\n> log display in the ASCII space. For example i frequently ask the\n> question \"which topic branch did commit XYZ originate from?\". All i have\n> now is a pretty crude script that displays this for a given file:\n>\n> earth4:~/tip> tip-log --no-merges linus.. kernel/sched.c | grep ^#\n> # core/kill-the-BKL: ffda12a: sched: optimize group load balancer\n> # core/locking: ffda12a: sched: optimize group load balancer\n> ...\n>\n> (see the script attached below)\n>\n> but it's very slow with 233 branches, obviously, so i only use it as a\n> last resort mechanism.\n>\n> What i'd _love_ to see is just an ASCII representation of where a commit\n> \"came from\" into the current branch. The first-hop branch it was\n> committed to.\n>\n> it doesnt even have to be correct in the sha1 sense - i.e. it's enough\n> for me if the merge commit log is parsed. (and hence it wont be correct\n> if a branch ceases to exist or is renamed - but that is OK, i keep the\n> branch space static)\n>\n> any ideas how to achieve that? I'd love to have output like this, if i\n> do this from tip/master (the master integration branch):\n>\n>  # mockup\n>\n>  earth4:~/tip> gll --no-merges kernel/sched.c\n>  ffda12a: [sched/core]      sched: optimize group load balancer\n>  8cd162c: [sched/clock]     sched: only update rq->clock while holding\n>  0a16b60: [tracing/sched]   tracing, sched: LTTng instrumentation\n>  a5d8c34: [sched/debug]     sched debug: add name to sched_domain sysctl entries\n>  34b3ede: [sched/core]      sched: remove redundant code in cpu_cgroup_create()\n>\n> ... and i dont want to embedd the branch name in every single commit.\n>\n> The semantics seem well-specified to me: walk down the merge tree a\n> particular commit came from, and use the branch name that is mentioned\n> in a merge commit's comment section 'closest' to this commit.\n>\n> That information is not 'trustable' in the sha1 sense because merge\n> commits can be modified manually and because the momentary name of a\n> branch might not be correct anymore - but with a sane topical setup this\n> would be a very powerful visualization tool.\n>\n> It would be a nice tool that makes it easy to check the proper structure\n> of topical branches, after the fact. Weird, incorrectly queued up\n> commits would stick out _immediately_:\n>\n>  34b3ede: [x86/xen]      sched: remove redundant code in cpu_cgroup_create()\n>\n\nIf you still have the tip of the branches you want to know, you can\nget a similar output with:\n\n$ git log --pretty=oneline builtin-checkout.c | git name-rev --stdin\n828e32b82e3e2bb10d6d730d3abe505063b481f6 (remotes/origin/HEAD~17) Fix\nmismerge at cdb22c4 in builtin-checkout.c\nf285a2d7ed6548666989406de8f0e7233eb84368 (remotes/spearce/master~2)\nReplace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer\n048f2762007d022defceb6850a44bc1bd5ccebf7 (remotes/spearce/master~24)\ndo not segfault if make_cache_entry failed\n\n(sorry if it is refilled)\n\nHTH,\nSanti\n"},{"id":"93656","messageId":"20081022075639.GA1284@elte.hu","threadId":"16003","inReplyTo":"adf1fd3d0810220039g51d61e92l5ba254b57723d3b6@mail.gmail.com","subject":"Re: [irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2008-10-22T07:56:39Z","receivedAt":"2008-10-22T07:56:39Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Santi Béjar <santi@agolina.net> wrote:\n\n> > It would be a nice tool that makes it easy to check the proper \n> > structure of topical branches, after the fact. Weird, incorrectly \n> > queued up commits would stick out _immediately_:\n> >\n> >  34b3ede: [x86/xen]      sched: remove redundant code in cpu_cgroup_create()\n> >\n> \n> If you still have the tip of the branches you want to know, you can\n> get a similar output with:\n> \n> $ git log --pretty=oneline builtin-checkout.c | git name-rev --stdin\n> 828e32b82e3e2bb10d6d730d3abe505063b481f6 (remotes/origin/HEAD~17) Fix\n> mismerge at cdb22c4 in builtin-checkout.c\n> f285a2d7ed6548666989406de8f0e7233eb84368 (remotes/spearce/master~2)\n> Replace calls to strbuf_init(&foo, 0) with STRBUF_INIT initializer\n> 048f2762007d022defceb6850a44bc1bd5ccebf7 (remotes/spearce/master~24)\n> do not segfault if make_cache_entry failed\n> \n> (sorry if it is refilled)\n\ni didnt know about git name-rev, nice tool!\n\nbelow is sample output from tip/master. Would there be a way to reformat \nit into a compact form, like:\n\nd80f55f6: (master)          Merge branch 'tracing/urgent'\n17d80fd0: (tracing/urgent)  tracing: create tracers menu\n\nThe most useful angle would be if git log --format had a way to print \nthe reverse name. Then i could do a git-log-line script like:\n\n  git log --pretty=format:\"%h: %20N %s\" $@\n\nwhere %N prints the reverse name.\n\nWhile at it: it would be nice if git log had a way to crop string \noutput. For example i'd love to use:\n\n  git log --pretty=format:\"%h: %60s\" $@\n\nwhich would print out at most 60 characters from the first commit line.\n\nThat way i can see it properly on an 80 width terminal and can paste it \ninto email without linewraps, etc. But --pretty=format does not seem to \nknow width restrictions.\n\n\tIngo\n\nd80f55f6711ab57ac5f4e147f9782a7351847ec1 (master) Merge branch 'tracing/urgent'\n17d80fd07d35ae1d231b3378ee4f00ace54f9d31 (tracing/urgent) tracing: create tracers menu\ndebfcaf93ed500a051489db6646d71f29fe86a68 (tracing/urgent~1) Merge branch 'tracing/ftrace' into tracing/urgent\n722fb95f2f57cdd4c6910675a7f342066ff131f7 (master~1) Merge branch 'tracing/core'\nd24fdbbb398764fccaec317d6e354a5111493940 (tracing/core) Merge branch 'linus' into tracing/core\n3e66b5d4a4c2265832d5e6fc0e36488fb1f06d84 (master~2) Merge branch 'kmemcheck'\n22993cab5b465ad75fc17056141cf94ff57b4767 (master~3) Merge branch 'x86/uv'\nb0f209898f1a177bd503d49215b8c6628797a81c (x86/uv) x86, uv: use consistent names for region size and conherence id on x86 and ia64\ne811da01227ab5cf84aa616f1ce528533b6204f1 (master~4) Merge branch 'irq/urgent'\ne85cd2b2ced8e0643a2ca769552b6f6e0cbbb470 (master~5) Merge branch 'core/urgent'\na56d4858686da0c97086c93d3f50d4020405c02b (core/urgent) printk: make variable static\n3786fc710c32b61464c322e5cd0c3d1d34ae72d0 (irq/urgent) irq: make variable static\ndf4a3963c2f91586ff96f8962bccee4d14cb1100 (master~6) Merge branch 'x86/urgent'\n8bcad30f2e6d4c20f7e71d2e2ac77acc0f0931e5 (x86/urgent) x86: make variables static\neefa4b484d1678e11c16d17b7e2d9e10bbfc1c3e (remotes/origin/HEAD) Merge branch 'out-of-tree'\n50f971ad73ea9550b1d8e34006bd11c7e108b24f (out-of-tree) qa: disable jffs2 for now\nc55c135163a1fb1869beefbce887c01fe50d31ed (remotes/origin/HEAD~1) range-hrtimers: merge timers/urgent\n490bd253db3da535fb7e8129d8d648290d27206c (remotes/origin/HEAD~2) Merge branch 'timers/urgent'\naed24c813ce374751c0818be922c785ec9f83dea (remotes/origin/HEAD~3) NOHZ: restart tick device from irq_enter()\nc4bd822e7b12a9008241d76db45b665f2fef180c (timers/urgent) NOHZ: fix thinko in the timer restart code path\nfca45353be469acb7f961fd3b2b244f400098a7d (kmemcheck) kmemcheck: document the shadow member of struct page\n50987b4becd23c0716631602c36a1be5ed74576c (kmemcheck~1) kmemcheck: update Kconfig help text\nf899dff87c5f03c8fc9145a9472b7e7f7173bbaa (kmemcheck~2) kmemcheck: update documentation\naf3f8f7ec6d1a35c9a99a50e4faafdc18249412c (kmemcheck~3) kmemcheck: fix mis-merge in sysctl table\n24a528ca7f1473368bf97c67a697227e57170a7f (remotes/origin/HEAD~4) Merge branch 'linus'\n439bbef95d7987acb821954db8f8c858c6bf6246 (remotes/origin/HEAD~5) Merge branch 'tracing/urgent'\ned8491f0e2c3378e2a84ddf5bb2d60b2e7c04113 (remotes/origin/HEAD~5^2) ftrace: fix section mismatch warning.\n8b1c190e9605035b4efb1f3bc6684cbae9b87dda (remotes/origin/HEAD~6) Merge branch 'irq/urgent'\n1bc1b5f7823035666d341b269dede4507b81a0bb (remotes/origin/HEAD~7) Merge branch 'core/urgent'\n5f86515158ca86182c1dbecd546f1848121ba135 (core-fixes-for-linus) rcupdate: fix bug of rcu_barrier*()\nb6f3b7803a9231eddc36d0a2a6d2d8105ef89344 (auto-sparseirq-next) genirq: NULL struct irq_desc's member 'name' in dynamic_irq_cleanup()\ne9f95e637320efe1936b647308ddf4ec5b8e0311 (auto-sparseirq-next~1) genirq: fix off by one and coding style\n935ddf564701da409ca960bf2f54db528daa79a3 (remotes/origin/HEAD~8) Merge branch 'irq/urgent'\n8ca7f02cdb97f1fe581768593ba2288a2d0fe32f (remotes/origin/HEAD~8^2) genirq: fix off by one and coding style\nbe5272d9410fcbc57edbc9b2d212332ed9e76dff (remotes/origin/HEAD~9) Merge branch 'out-of-tree'\nb6ec630b689e5f4694d8ea1f38798926a960dc2e (out-of-tree~1) net9p: work around build breakage\n11f46c9d6d27ab4d359bafa0b9df0cc5e1ba4a1d (remotes/origin/HEAD~10) Merge branch 'x86/doc'\nff2904fb6daeefecb6f8c2c8c63ea41b833c1ded (remotes/origin/HEAD~10^2) Merge branch 'linus' into x86/doc\n197ec4d0ce943259c11900aa0ee45cf4252d009a (remotes/origin/HEAD~11) Merge branch 'out-of-tree'\nae4038719e87e6cf2f815aa735909b615abd9121 (out-of-tree~2) mm fix: Re: unable to handle kernel NULL pointer derefence at 00000000\na331daffa5dd61e29bbc50ef258753c325815f69 (remotes/origin/HEAD~12) Merge branch 'x86/urgent'\n27945ca30442e84d866735dde5cec3b0ba148d62 (remotes/origin/HEAD~13) Merge branch 'x86/pci-ioapic-boot-irq-quirks'\nee2caf0cee7f09953630209d63434eadd97b3f8f (remotes/origin/HEAD~14) manual merge of x86/doc\ne523b1fdc81ba1aed0f9800e12d99a1c0f6fcd86 (remotes/origin/HEAD~15) Merge branch 'x86/cleanups'\n1a6e0823a6863b9312faf6aa42f9913d25c65f66 (remotes/origin/HEAD~16) Merge branch 'warnings/simple'\nd9067316e80df04a850e2cc6e92f43cb149700cc (remotes/origin/HEAD~17) Merge branch 'warnings/infrastructure'\na3a2394fadfc13818182ab0f8bfdbbfd01e84b57 (remotes/origin/HEAD~18) Merge branch 'warnings/complex'\n64cf0f977c72dbe309a089439071c1d2714f6653 (remotes/origin/HEAD~19) Merge branch 'warnings/bug'\n5cbb06a3ff222d3ffe6fe57f6f490bee31ae83ee (remotes/origin/HEAD~20) Merge branch 'tracing/urgent'\n1c667db03bee74b1b25715a192f9b297761a9e00 (remotes/origin/HEAD~21) Merge branch 'tracing/markers'\n1aa708f1c974d338b4bce75eec7f77ef3b748171 (remotes/origin/HEAD~22) Merge branch 'tracing/ftrace'\n440c31d907ecdf4f7d7d213656e08f7a67e0c18d (remotes/origin/HEAD~23) Merge branch 'tracing/core'\n396cc143ac608aa82cdf2d942a3d00d2ac333db2 (remotes/origin/HEAD~24) Merge branch 'timers/rtc'\n22022cb8b6c8fdfe3cdc12f310203a28190f24de (remotes/origin/HEAD~25) manual merge of timers/range-hrtimers\nf908633285b8e73cff179a52bc4f73d3d9b565f5 (remotes/origin/HEAD~26) manual merge of stackprotector\n00f6c5901c6ac11c63b9057639756d3e4d2dc613 (remotes/origin/HEAD~27) Merge branch 'sched/urgent'\nd4d79dc6ad5d9f43038ad7c717866c8fcae0173e (remotes/origin/HEAD~28) Merge branch 'safe-poison-pointers'\n1552b31f9c6ee9e5e5cb92dea77e084aa13ff05a (remotes/origin/HEAD~29) Merge branch 'oprofile'\n1ef89f7f876568c2d15731ae5ee39d384deabb05 (remotes/origin/HEAD~30) manual merge of kmemcheck-v2\n1f92ca40e95515ee1f7685fb7049ecfc8c797ca0 (remotes/origin/HEAD~31) Merge branch 'irq/urgent'\na16fc956cb5021500a8d02547a99488c894f1413 (remotes/origin/HEAD~32) Merge branch 'irq/genirq-v3'\n728b75cc6dfa6178bbbf20838eda60032a78fc2c (remotes/origin/HEAD~33) manual merge of irq/genirq\n61b15a6bddc8625b6beda35e2d923d2844f59b95 (remotes/origin/HEAD~34) manual merge of cpus4096\n62dd3c84287f6b59fe2f1e40c26a0d7e5d63516c (remotes/origin/HEAD~35) Merge branch 'core/urgent'\n0868e883d967ac6c54e35a817c23a40a603d7551 (remotes/origin/HEAD~36) Merge branch 'core/percpu'\n6eb9b1d2e751f3857229e48144fdc394ffaa6fe7 (remotes/origin/HEAD~37) Merge branch 'core/locking'\nf89beb7bc5eba16660141122b34d99fe89fe9c65 (remotes/origin/HEAD~38) Merge branch 'core/futexes'\nc483bd39bfcc57c931226955d4e83b71a4e01ce9 (remotes/origin/HEAD~39) Merge branch 'core/debug'\n75e7035e679c462c0c9c6a1cb0dc60fbcc58d3d4 (remotes/origin/HEAD~40) Revert \"NOHZ: restart tick device from irq_enter()\"\n39fc6adb39ea36f746b6c4137dc38012878ce02e (remotes/origin/HEAD~41) Merge branch 'out-of-tree'\n8422ac179506d38eb3f432809e806dd012581270 (out-of-tree~3) staging: fix p80211wext_event_associated() build failure\nd9c32f25101f22574aa861cb7f3fe58ebdf52232 (out-of-tree~4) qa: cx88: disable for now\ne63003c9ec406578631c6322346ca0e326d99d46 (out-of-tree~5) qa: always-enable CONFIG_FILE_LOCKING\n0be9b16320ac42f968245e55383a5dd9238b9c39 (out-of-tree~6) pci: fix: BUG: unable to handle kernel NULL pointer dereference, IP: pci_create_slot+0x28/0x170\nd4d92fcc681f2a9b788fe228df1f9da3ef0cc111 (out-of-tree~7) dvb: disable dm1105\nb56b096cb3b258eebc63ce36ba9ee332a1427d79 (out-of-tree~8) mfd: disable another driver\n892cff77716a359fc2f6e159d846893d07bf11f4 (out-of-tree~9) drivers/mfd/Kconfig: turn off broken driver\n93e60b49d3df9f8bab5079e9e796bce3c604e3ed (out-of-tree~10) security: initialize skb->sk_security by default\n3cdfa5c3b0e1d60925497ced0cf908a2f078732c (out-of-tree~11) rtx2x00: disable for now\nc8d7def4258375d88f0b6f06cc6f10c3a514a285 (out-of-tree~12) drm: fix leak of uninitialized data to userspace\n17bc3f7bf083e754e5c6210eab7af9ce7ed02ebc (out-of-tree~13) Revert \"Revert parts of \"x86: update mptable\"\"\nac2716510df12c6fa0e6b99ebb4aa68584a1a751 (out-of-tree~14) pnp: Huge number of \"io resource overlap\" messages\nced6e773aa88b80b0c6b519a84f1e85ff15e3416 (out-of-tree~15) acpi: don't load acpi_cpufreq if acpi=off\nf6d62717fa9c6572f257720abac383a7ae5fdb62 (out-of-tree~16) wd.c: work around broken build\n1327b0cc9ad75c246f6e4198cf9c1731afda4146 (out-of-tree~17) net, wd.c: fix undefined reference to `NS8390p_init'\n75acfc78aa1a3ac46f473e39b8b294309f8a80c9 (out-of-tree~18) misdn: work around build bug\n81ba9c8488248a766f7151eba1664e9d93f49701 (out-of-tree~19) hp-plus.c: work around build failure\n70027001c8e97565fad148f371505f022eb1e779 (out-of-tree~20) USB: work around crash\n985d392693af6bbd6bdabcad65d24edb3b64c4ed (out-of-tree~21) work around build breakage\n18eed0ffd132f50660e7c1c16c48ec2af312de00 (out-of-tree~22) i2c: work around boot crash in amd756_s4882_init()\n32347630cbf94685c4eaae6d645ba720a8b31d2b (out-of-tree~23) i2c workaround: turn off I2C_NFORCE2_S4985 for now\n7120b52e90e1837e09bb4621f105022f940b856a (out-of-tree~24) work around this crash for now:\n3966803bcaa7a7b82ac05959c66ce12ea5953111 (out-of-tree~25) ACPI: don't walk tables if ACPI was disabled\n3ac23f215a2b1710ae7b4ee5569ddfe303386a4f (out-of-tree~26) ACPI, x86: disable the C2C3_FFH access mode if MWAIT is unsupported\n1d8d02e53965633d7465e4d3881365d5f114cfd9 (out-of-tree~27) x86: enable speedstep for Intel Pentium M processor 7x0 [1.6-2.26 GHz] (Sonoma) processors\n899b5030558b8dc21a171e2e8129e0a93fb08860 (out-of-tree~28) init: root mount fix\n6894676b3486f75d8e0c0c777fa9d8bf883eec70 (out-of-tree~29) net: use numa_node in net_devcice->dev instead of parent\nda684332e2dc25966ac39d0c57f21715db0eb80e (out-of-tree~30) tip: add -tip tag\nc267f4dff573d67eb9a8645b5045d971a0a3bc7b (warnings/complex) fix warning in fs/ext4/extents.c\n8501db35588df4f35d67d8ba207422006a214ae7 (warnings/complex~1) work around warning in fs/xfs/xfs_rtalloc.c\n7cf87ad9e9dc30304ec862b45156e93d2c255911 (warnings/complex~2) fix warning in drivers/net/mlx4/mcg.c\n6e0ffadd6edcdc2bfc8a526a4f6f7644815fd1ed (warnings/complex~3) fix warning in drivers/net/mlx4/profile.c\nfaad95db248fffe94b691a9c8f9cd0193584633a (warnings/complex~4) fix warning in arch/x86/kernel/setup.c\n4f4e11e8dce3f4d76f7196b2af7f8c28067f902b (warnings/complex~5) fix warning in drivers/isdn/i4l/isdn_ppp.c\n4b9fa1a9927b4fec31c68b2d7d20384a01363b47 (warnings/complex~6) fix warning in arch/x86/kernel/early-quirks.c\n159583619a768eb78ec81bf9ca96fa0096699083 (warnings/complex~7) fix warning in drivers/base/platform.c\nbfbde60a78f6d467e41c557b44ec741d92ba61f0 (warnings/complex~8) fix warning in drivers/pci/pci-driver.c\n6ddae344a73fcff60c840dd4e429bf55562b41f3 (warnings/complex~9)  #ifdef complications in drivers/acpi/sleep/main.c\n4b57d6ee2dc9a1062521298ad2d87b24aa5d12e4 (warnings/complex~10) fix warning in net/ax25/sysctl_net_ax25.c\nb5532a323def96dda020cc19d326c2d456b3befc (warnings/complex~11) fix warnings in drivers/acpi/sbs.c\nec9e8767ceacedbac9a1ed60d815e9f37ea98a31 (warnings/complex~12) fix warning in sound/pci/cs46xx/cs46xx_lib.c\n76a62692c3328c2870949b07ee10dff764701faf (warnings/complex~13) fix warning in net/sunrpc/xprtrdma/verbs.c\nd41b73d05e0f4c99255e18de064adeac79e32af2 (warnings/complex~14) fix warning in net/bluetooth/rfcomm/sock.c\n035aca6532256d0b5a31c7dfc989c3af223aae9e (warnings/complex~15) fix warning in drivers/video/matrox/matroxfb_crtc2.c\n3e67d911f11fb73d716bffc6d056730ced7b9f11 (warnings/complex~16) fix warning in drivers/char/rtc.c\n8f845313ba091a6041e666c611ef9bb751d91723 (warnings/complex~17) fix warning in ipc/ipc_sysctl.c\n34483bdb925851a069c8ad32801a52382f3a6d31 (warnings/complex~18) fix warning in drivers/usb/misc/vstusb.c\n98fa7e0f5af226c5343b5bcdd4c5435c120acd8e (warnings/complex~19) fix warning in drivers/message/fusion/mptbase.c\n956ae9e7f7535aa15a9e5f2dce1c7dc0dada2be2 (warnings/complex~20) fix warning in kernel/profile.c\ne698275468fae57af762b81dbc64fac09909e1ec (warnings/complex~21) fix warning in drivers/net/wireless/ray_cs.c\n830ecfa8290ba6d332bd809b330977338190abbe (warnings/complex~22) fix warning in sound/pci/hda/patch_sigmatel.c\n76b04a364261b872602ce73c659534b1cde1b7ae (warnings/complex~23) fix warning in drivers/scsi/advansys.c\n2020ebad843222e5e965d1a76584da5737da1e89 (warnings/complex~24) fix warning in arch/x86/kernel/cpu/intel_cacheinfo.c\naca9c3a12781b0184be4d2bf4f906206394710db (warnings/complex~25) fix warning in drivers/isdn/i4l/isdn_common.c\nd489f40fdffc0432a4deffa8c6b538c5d6c76990 (warnings/complex~26) fix warning in drivers/net/wan/syncppp.c\n32a1ce224a376395351d534f5a3cdbf09a1bb0a8 (warnings/complex~27) fix warning in net/netfilter/nf_conntrack_proto_sctp.c\n055231c21d70848060852892d63bb0ed1db22ac5 (warnings/complex~28) fix warning in net/netfilter/ipvs/ip_vs_ctl.c\n2262c8b220ab3b07ae07775b7ccb676ed24ac5f6 (warnings/complex~29) fix warning in drivers/char/rocket.c\n6f9fecb3d70400c5f99c1a1d09ffcce84483f611 (warnings/complex~30) fix warning in arch/x86/kernel/scx200_32.c\n1fdf3e8b2702553b5c99cd57fd7445de3b976b9c (warnings/complex~31) fix warning in drivers/net/atlx/atl2.c\nfa8e55eb6d126214b56c1291b6163bb698be094f (warnings/complex~32) include/linux/init.h: fix warning in drivers/crypto/hifn_795x.c\n5a74eb70b93ead02290817d85f0064df833d429f (warnings/complex~33) fix warning in drivers/video/aty/atyfb_base.c, #2\ncc499e1b8c2a2e4b6f2bfbfaea1bf14b3d8ca9ee (warnings/complex~34) fix warning in drivers/video/aty/atyfb_base.c\ndee28be5adf98095ffba0681b9d50b5193530787 (warnings/complex~35) fix warning in fs/coda/sysctl.c\n6bbf3e6297bfac50ab1f26c95dded0163a7f5351 (warnings/complex~36) fix warning in net/netfilter/nf_conntrack_proto_tcp.c\n47ac1136e2314d7c65d65b114a17751728f61f93 (warnings/complex~37) fix warning in drivers/media/dvb/dvb-usb/anysee.c\nd569696a616ac0ca0b440d84071f83e77b00f452 (warnings/complex~38) fix warning in drivers/net/wireless/iwlwifi/iwl-scan.c\n15d50b15843ccea15667f0bff5eb54d389a445f9 (warnings/complex~39) lockdep: include/linux/lockdep.h - fix warning in net/bluetooth/af_bluetooth.c\n5a0d58611372742163d2727812f36527321abfe3 (warnings/complex~40) fix warning in drivers/watchdog/w83697ug_wdt.c\n0faf3f9d4728e23b877279f3a239d8c9c59cd5dd (warnings/complex~41) fix warning in drivers/net/wireless/libertas_tf/if_usb.c\n609d5948fd3f59132f48de6360fc46d0bbecd8a7 (warnings/complex~42) fix warning in drivers/mfd/ucb1400_core.c\n8858ab02a18e82675cec3a99984767ef7445084f (warnings/complex~43) fix warning in drivers/scsi/dtc.c\n129e100e56a451534307b800ece2cc9ffbfa0fae (warnings/complex~44) fix warning in drivers/isdn/sc/timer.c\na70d2056f7d297e2ae39b89d72e7a3b7734cfa9e (warnings/complex~45) fix warning in drivers/isdn/sc/ioctl.c\n4646ee0cad4328de4d4c30f838dc27109b54dcd3 (warnings/complex~46) fix warning in drivers/net/depca.c\nca9a950c830f529766cc422a29c4822271eb5406 (warnings/complex~47) fix warning in drivers/net/3c523.c\n2e4f5630f57f155cbd07771c3a305f48b991f90c (warnings/complex~48) fix warning in drivers/scsi/g_NCR5380.c\n7f941db396f1fdc0e010916b5a613b5b7d522c14 (warnings/complex~49) fix warning in drivers/isdn/sc/shmem.c\ncc2efdd1b01a3caa7ce93d301d9a3e23ea0457ee (warnings/complex~50) fix warning in drivers/mca/mca-legacy.c\n24842fb0217e3cf2988de77830ae1adee295a167 (warnings/complex~51) fix warning in drivers/isdn/icn/icn.c\nc85193d4a954684f4269c4ed4f6f7b391d63797e (warnings/complex~52) fix warning in drivers/infiniband/hw/amso1100/c2_vq.c\n299711a947ae5f818fa5f3e3d2c4fe22466a03ca (warnings/complex~53) fix warning in drivers/input/touchscreen/htcpen.c\ndd4c80c5dedf66d1840fc372a9f7418f32d138df (warnings/complex~54) fix warning in drivers/isdn/sc/init.c\nec5aa2f441bacc89b2e0e9e4971c6c9aa460942a (warnings/complex~55) fix warning in drivers/watchdog/i6300esb.c\nee5aa63192e5b545c0f89c84dbfdb5cc4deea113 (warnings/complex~56) fix warning in kernel/power/main.c\ne16a7ed48454125ff97a644742398022f72321dd (warnings/complex~57) fix warning in fs/compat_binfmt_elf.c\n606c6806381192653211492b07592df9430c7865 (warnings/complex~58) fix warning in drivers/pci/search.c\n037abd9c198336c3aa9024de149e6b640877be2f (warnings/complex~59) fix warning in drivers/isdn/hardware/eicon/message.c\nf72bccd1611f4dafd875e993cff5017a4a73ec6d (warnings/complex~60) warnings: disable i2o on 64bit\n8077af8b47a9ec1c76997a9516f0335638ee51c0 (warnings/complex~61) warnings: fix xfs posix acl\n0b3682ba33c59a362901b478bdab965da888b350 (auto-sparseirq-next~2) genirq: fix set_irq_type() when recording trigger type\n2515ddc6db8eb49a79f0fe5e67ff09ac7c81eab4 (kmemcheck-v2) binfmt_elf_fdpic: Update for cputime changes.\na50c22eed593f474e75f693381e4d42e81762de8 (kmemcheck-v2~1) mm: remove duplicated #include's\ne798ba57e9f423dddbf1bdeb20a62bdd0593890f (kmemcheck-v2~2) Export tiny shmem_file_setup for DRM-GEM\n653c03168348ac7aebb969931f87ba281749d7dd (kmemcheck-v2~3) misc: replace remaining __FUNCTION__ with __func__\ne8848a170fd432bdda176a2d568919d4bba90467 (kmemcheck-v2~4) fix CONFIG_HIGHMEM compile error in drivers/gpu/drm/i915/i915_gem.c\nf6f286f33e843862c559bfea9281318c4cdec6b0 (kmemcheck-v2~5) fix WARN() for PPC\n5f41b8cdc6ef33b3432cee36264d628a80398362 (kmemcheck-v2~6) kexec: fix crash_save_vmcoreinfo_init build problem\ne3d2f927f788adcdabc42f8a1616f6cc56c53bbe (kmemcheck-v2~7) Merge git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6\na9b6148d25f15ddfe9d7a7f3e526fdb64e7cf7da (auto-core-next-base) USB: Fix unused label warnings in drivers/usb/host/ehci-hcd.c\n9b7530cc329eb036cfa589930c270e85031f554c (auto-core-next-base~1) i915: cleanup coding horrors in i915_gem_gtt_pwrite()\n1ae87786800b5e0411847974b211797b6ada63c4 (auto-core-next-base~2) Fix sprintf format warnings in drm_proc.c\n2bea2e4abf2fe8bc7384103aeaad91089109cfba (auto-core-next-base~3) Merge branch 'bkl-removal' of git://git.lwn.net/linux-2.6\na0bfb673dca8a2b4324fe11e678ec6d6a9ad67e0 (auto-core-next-base~4) Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n92b29b86fe2e183d44eb467e5e74a5f718ef2e43 (auto-core-next-base~5) Merge branch 'tracing-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\nb9d7ccf56be1ac77b71a284a1c0e6337f9a7aff0 (auto-core-next-base~6) Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n9301975ec251bab1ad7cfcb84a688b26187e4e4a (auto-core-next-base~7) Merge branch 'genirq-v28-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n7110879cf2afbfb7af79675f5ff109e63d631c25 (auto-core-next-base~8) Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n99ebcf8285df28f32fd2d1c19a7166e70f00309c (auto-core-next-base~9) Merge branch 'v28-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n72558dde738b06cc01e16b3247a9659ca739e22d (auto-core-next-base~10) Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\nb91385236c00031c64b42b44db8068ad38a5ea11 (auto-core-next-base~11) Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx\nd67ae206ef05198824c2a306c0c0edf2d2088920 (auto-core-next-base~12) Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog\n1d9a8a47d659f053abeca9ece45651b4d94780c8 (auto-core-next-base~13) Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\nf07767fd0f95c385108fa4c456a9cb216a424fec (auto-core-next-base~14) byteorder: remove direct includes of linux/byteorder/swab[b].h\nf4432c5caec5fa95ea7eefd00f8e6cee17e2e023 (auto-core-next-base~15) Update email addresses.\n6da0b38f4433fb0f24615449d7966471b6e5eae0 (auto-core-next-base~16) fs/Kconfig: move ext2, ext3, ext4, JBD, JBD2 out\n54b1d646d442289d8d49e04bc2f10ba122ff6aa4 (warnings/simple) sound/soc/codecs/tlv320aic23.c: remove unused variable\n0be735b3ff71e13e24b82420f23a1b3b0a207ffb (warnings/simple~1) net/mac80211/rc80211_minstrel_debugfs.c: fix return type\n04271505e03535e1fd085c96085fcee41e7c415f (warnings/simple~2) [vfs] fs.h: fops_get()/fops_put(): use pointer comparison\nf81ee5ca545020daf0ddfff3744199b87bbd8c70 (warnings/simple~3) include/linux/fs.h: improve type checking of __mandatory_lock()\n5baf34fc63c31ef676e0a764415b10e5cc1c7a4b (warnings/simple~4) net/netlabel/netlabel_addrlist.c: add type checking to audit_log_format()\nd58cbf52cb25e215c0e34048bda8ec481bdce4af (warnings/simple~5) fs/afs/dir.c: fix uninitialized variable use\n19be5d76a014ce0e743848a42cbb3b579c0ad8d7 (warnings/simple~6) drivers/video/cirrusfb.c: remove unused variables\nd138e44e2f8d0f26e04b0386d328d9cc7e33d82e (warnings/simple~7) drivers/net/wireless/b43/phy_g.c: type check debug printouts\nf11adf3c65aff25074d5d3a90d72cdfc40d66b50 (warnings/simple~8) drivers/ide/pci/hpt366.c: remove unused variable\necd05381e26b9a61e49fa485baea1595bd3d1b40 (warnings/simple~9) x86: fix default_spin_lock_flags() prototype\n0d468300dc97d6aec084799ffe39253ac366f1e4 (auto-core-next-base~17) Remove empty imacfb.c file\n96499871f45b9126157b1a5c512d6e30f1635225 (auto-core-next-base~4^2) PCI: fix pci_ioremap_bar() on s390\ndb7a6d8d01b21829d28638258cbbc9553210bac1 (auto-core-next-base~18) Update .gitignore files for generated targets\n270c66be9b4a6f2be53ef3aec5dc8e7b07782ec9 (auto-core-next-base~4^2~1) PCI: fix AER capability check\n0927678f55c9a50c296f7e6dae85e87b8236e155 (auto-core-next-base~4^2~2) PCI: use pci_find_ext_capability everywhere\n1543c90c39360df333a21bfbbdfe812ae23b8167 (auto-core-next-base~4^2~3) PCI: remove #ifdef DEBUG around dev_dbg call\nbd1d9855be3ab8a5c2b31053d464b7fe63e6963b (auto-core-next-base~4^2~4) PCI hotplug: fix get_##name return value problem\ne5665a45fa28d0114f61b5d534a3b2678592219d (auto-core-next-base~4^2~5) PCI: document the pcie_aspm kernel parameter\naa42d7c6138afdc54f74e971456a0fbfec16b77b (auto-core-next-base~4^2~6) PCI: introduce an pci_ioremap(pdev, barnr) function\ne9f82cb75096ae30658a72d473bf170bf4d3bb2e (auto-core-next-base~4^2~7) powerpc/PCI: Add legacy PCI access via sysfs\nf19aeb1f3638b7bb4ca21eb361f004fac2bfe259 (auto-core-next-base~4^2~8) PCI: Add ability to mmap legacy_io on some platforms\nf393d9b130423a7a47c751b26df07ceaa5dc76a9 (auto-core-next-base~4^2~9) PCI: probing debug message uniformization\n58c3a727cb73b75a9104d295f096cca12959a5a5 (auto-core-next-base~4^2~10) PCI: support PCIe ARI capability\n201de56eb22f1ff3f36804bc70cbff220b50f067 (auto-core-next-base~4^2~11) PCI: centralize the capabilities code in probe.c\n280c73d3691fb182fa55b0160737c2c0feb79471 (auto-core-next-base~4^2~12) PCI: centralize the capabilities code in pci-sysfs.c\ne354597cce8d219d135d65e585dc4f30323486b9 (auto-core-next-base~4^2~13) PCI: fix 64-vbit prefetchable memory resource BARs\n557848c3c03ad1d1e66cb3b5b06698e3a9ebc33c (auto-core-next-base~4^2~14) PCI: replace cfg space size (256/4096) by macros.\n022edd86d7c864bc8fadc3c8ac4e6a464472ab05 (auto-core-next-base~4^2~15) PCI: use resource_size() everywhere.\nc322b28a04c084a467a862766f74c40c917a721c (auto-core-next-base~4^2~16) PCI: use same arg names in PCI_VDEVICE comment\n5d9bc1fa47f0c1561f1d7c0bdff5e24860852b42 (auto-core-next-base~4^2~17) PCI hotplug: rpaphp: make debug var unique\nc9bbb4abb658daf6cc6f92fb4751a7796a5aab75 (auto-core-next-base~4^2~18) PCI: use %pF instead of print_fn_descriptor_symbol() in quirks.c\nc8761fe80ed052634153438405c9048611ae7ae1 (auto-core-next-base~4^2~19) PCI: fix hotplug get_##name return value problem\n11d587429e9cbb40ac20d7ed8126c66da0d7aba5 (auto-core-next-base~4^2~20) PCI: fix sparse warning in pci_remove_behind_bridge\n50cbfa511a21cac1909b6b4c955fa39d1da81457 (auto-core-next-base~4^2~21) PCI: fix MSI-HOWTO.txt info about MSI-X MMIO space\nec84f1268fcf16c4a852fdb38b3a541748644918 (auto-core-next-base~4^2~22) PCI: fix -Wakpm warnings in pci_pm_init debug output\ncef354db0d7a7207ea78c716753d9216a9c2b7e1 (auto-core-next-base~4^2~23) PCI: connect struct pci_dev to struct pci_slot\n93ff68a55aa92180a765d6c51c3303f6200167a6 (auto-core-next-base~4^2~24) PCI: make CPU list affinity visible\n5993760f7fc75b77e4701f1e56dc84c0d6cf18d5 (auto-core-next-base~4^2~25) PCI: utilize calculated results when detecting MSI features\n7f2feec140f1f1e4f701e013a2bf8284a9ec2a3c (auto-core-next-base~4^2~26) PCI: pciehp: replace printk with dev_printk\n83e9ad540b9ee23919961f9500ca254220b78d09 (auto-core-next-base~4^2~27) PCI: pciehp: change name tag of \"hpdriver_portdrv\" variable\n37a84ec668ba251ae02cf2c2c664baf6b247ae1f (auto-core-next-base~4^2~28) x86/PCI: irq and pci_ids patch for Intel Ibex Peak DeviceIDs\nf7a10e32a1a7ae240fa3925c5727d224eba3e31d (auto-core-next-base~4^2~29) PCI: pciehp: fix irq initialization\nc01156061bdd5976397dfb173f8c70ae351a6cb6 (auto-core-next-base~4^2~30) PCI: Document that most pci options are shared between i386 and x86-64\nc9ed77eeba8ec2541a40918210bcc676acacd43a (auto-core-next-base~4^2~31) PCI: tidy PME support messages\n2fd39aa7c2f3d696814abb3e8962c759eee484f3 (auto-core-next-base~4^2~32) PCI: ibmphp: list_for_each to list_for_each_entry-checkpatch cleanups\na8d2dbd38481e0c35c6bdd8196dd38a42ae45d02 (auto-core-next-base~4^2~33) PCI: ibmphp: list_for_each to list_for_each_entry\n34a2e15e95fce6d6f4d30162f53a0ceb25d5bbaf (auto-core-next-base~4^2~34) PCI: follow lspci device/vendor style\nd768cb6929773060171eee8397a63883f60ddc07 (auto-core-next-base~4^2~35) x86/PCI: follow lspci device/vendor style\n16dbef4a831782466b10d4ae56837c5ba17d1948 (auto-core-next-base~4^2~36) PCI: change MSI-x vector to 32bit\n0235c4fc7fc6f621dc0dd89eba102ad5aa373390 (auto-core-next-base~4^2~37) PCI PM: Introduce function pci_wake_from_d3\n3d137310245e4cdc3e8c8ba1bea2e145a87ae8e3 (auto-core-next-base~4^2~38) PCI: allow quirks to be compiled out\nb41d6cf38e27a940d998d989526a9748de1bf028 (auto-core-next-base~4^2~39) PCI: Check dynids driver_data value for validity\nedbc25caaa492a82e19baa915f1f6b0a0db6554d (auto-core-next-base~4^2~40) PCI: remove dynids.use_driver_data\n592b7a88564a2167a144265bf68df0123c0e4e98 (tmp.master.prev~2^2) doc/x86: fix doc subdirs\n921974982a7aab561a1c3ff1763af7470874ba8e (auto-core-next-base~19) Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc\n7d67474e506598fe26e0c262acf02132dc730517 (auto-core-next-base~20) Merge git://git.infradead.org/battery-2.6\n252883e512c6d8fbc03b6738f1620fda44c4d472 (auto-core-next-base~21) epca: Add infinite break support\n"},{"id":"93666","messageId":"48FEE5B3.9060202@op5.se","threadId":"16003","inReplyTo":"20081022061730.GA5749@elte.hu","subject":"Re: [irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2008-10-22T08:34:59Z","receivedAt":"2008-10-22T08:34:59Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Ingo Molnar wrote:\n> Git recently started printing the branch name when creating commits:\n> \n>   [irq/urgent]: created 3786fc7: \"irq: make variable static\"\n> \n> very nice idea IMO!\n\nThanks! Be sure to read the paintshop discussion that lead to the\nchange ;-)\n\n> Having it all on one line allows me to double-check \n> that i indeed queued up a patch in the intended topic branch. Had it \n> read:\n> \n>   [irq/urgent]: created 3786fc7: \"printk: make variable static\"\n> \n> i'd have noticed the mistake immediately.\n> \n> this welcome enhancement made me remember of three usage problems i had \n> with Git recently:\n> \n> 1)\n> \n> Btw., it would be nice if there was an easier way to get a similar git \n> log display in the ASCII space. For example i frequently ask the \n> question \"which topic branch did commit XYZ originate from?\". All i have \n> now is a pretty crude script that displays this for a given file:\n> \n> earth4:~/tip> tip-log --no-merges linus.. kernel/sched.c | grep ^#\n> # core/kill-the-BKL: ffda12a: sched: optimize group load balancer\n> # core/locking: ffda12a: sched: optimize group load balancer\n> ...\n> \n> (see the script attached below)\n> \n> but it's very slow with 233 branches, obviously, so i only use it as a \n> last resort mechanism.\n> \n> What i'd _love_ to see is just an ASCII representation of where a commit \n> \"came from\" into the current branch. The first-hop branch it was \n> committed to.\n> \n> it doesnt even have to be correct in the sha1 sense - i.e. it's enough \n> for me if the merge commit log is parsed. (and hence it wont be correct \n> if a branch ceases to exist or is renamed - but that is OK, i keep the \n> branch space static)\n> \n> any ideas how to achieve that? I'd love to have output like this, if i \n> do this from tip/master (the master integration branch):\n> \n\nIf you have the branch-heads around, do \"git branch --contains <sha1>\".\nIf I understand the i386 tree correctly (integration branches are named\nwithout slashes), you could pipe it to \"grep /\" to see only the\ntopic-branches that has it.\n\nI imagine you'd want to use it to find out which branches you can (or\ncan't) merge, and in that case you need to know about all the topics\nwhich have the commit. Assuming you don't go crazy cherry-picking and\ncriss-cross merging, it should only list a few. The output is not as\nfancy as below, but it should be faster than the appended script (by\nseveral orders of magnitude).\n\n>  # mockup\n> \n>  earth4:~/tip> gll --no-merges kernel/sched.c\n>  ffda12a: [sched/core]      sched: optimize group load balancer\n>  8cd162c: [sched/clock]     sched: only update rq->clock while holding\n>  0a16b60: [tracing/sched]   tracing, sched: LTTng instrumentation\n>  a5d8c34: [sched/debug]     sched debug: add name to sched_domain sysctl entries\n>  34b3ede: [sched/core]      sched: remove redundant code in cpu_cgroup_create()\n> \n> ... and i dont want to embedd the branch name in every single commit.\n> \n> The semantics seem well-specified to me: walk down the merge tree a \n> particular commit came from, and use the branch name that is mentioned \n> in a merge commit's comment section 'closest' to this commit.\n> \n> That information is not 'trustable' in the sha1 sense because merge \n> commits can be modified manually and because the momentary name of a \n> branch might not be correct anymore - but with a sane topical setup this \n> would be a very powerful visualization tool.\n> \n> It would be a nice tool that makes it easy to check the proper structure \n> of topical branches, after the fact. Weird, incorrectly queued up \n> commits would stick out _immediately_:\n> \n>  34b3ede: [x86/xen]      sched: remove redundant code in cpu_cgroup_create()\n> \n> 2)\n> \n> and while at ASCII representation - this made me remember a problem i \n> frequently have with octopus merges: it's _very_ difficult currently to \n> 'backtrack' along a higher-order octopus in the git log ASCII space.\n> \n> I dont use the newfangled flashy GUIs all that frequently and i recently \n> tried to go back to double-check the history of this order-21 octopus \n> merge in the upstream Linux kernel:\n> \n>  commit e496e3d645c93206faf61ff6005995ebd08cc39c\n>  Merge: b159d7a... 5bbd4c3... 175e438... 516cbf3... af2d237... 9b15684... 5b7e41f... 1befdef... a03352d... 7b22ff5... 2c7e9fd...  91030ca... dd55235... b3e15bd... 20211e4... efd327a... c7ffa6c...  e51a1ac... 5df4551... d99e901... e621bd1...\n>  Author: Ingo Molnar <mingo@elte.hu>\n>  Date:   Mon Oct 6 18:17:07 2008 +0200\n> \n>      Merge branches 'x86/alternatives', 'x86/cleanups', 'x86/commandline', 'x86/crashdump', 'x86/debug', 'x86/defconfig', 'x86/doc', 'x86/exports', 'x86/fpu', 'x86/gart', 'x86/idle', 'x86/mm', 'x86/mtrr', 'x86/nmi-watchdog', 'x86/oprofile', 'x86/paravirt', 'x86/reboot', 'x86/sparse-fixes', 'x86/tsc', 'x86/urgent' and 'x86/vmalloc' into x86-v28-for-linus-phase1\n> \n> i wanted to know the history of the 'x86/idle' topical commits. But it \n> was not easy to line up the sha1's to the branch names. So i had to \n> manually edit the commit log, i manually lined up all 21 sha1's to each \n> other, just to be able to figure out branch #11 in that lineup.\n> \n> Is there some more efficient way to do that? Perhaps some git log output \n> that matches up the topic names with the sha1's? [for the cases where \n> the octopus merge commit log message still has a reasonable format]\n> \n\nA mock-up of desired output would be good here. Perhaps something like this?\n\n--%<--%<--\n<X>-way octopus merge\n\n x86/alternatives <abbrev sha1>: \"<abbreviated x86/alternatives subject>\"\n x86/cleanups <abbrev sha1>: \"<abbreviated x86/cleanups subject>\"\n\nSigned-off-by: ...\n--%<--%<--\n\nThe subject for this says absolutely nothing, but it's not so long that it\ncan't be viewed comfortably either, and hopefully the author will amend\nthe subject with something suitable.\n\n> 3)\n> \n> Similarly, when doing Octopus merges, and if the merge _fails_, it's \n> hard to see exactly which branch failed. For example, when preparing for \n> the v2.6.28 merge window i did something like this at a certain stage:\n> \n>     git merge x86/alternatives x86/cleanups x86/commandline \\\n>               x86/crashdump x86/debug x86/defconfig x86/doc \\\n>               x86/exports x86/fpu x86/gart x86/xen x86/idle x86/mm  \\\n>               x86/mtrr x86/nmi-watchdog x86/oprofile x86/paravirt \\\n>               x86/reboot x86/sparse-fixes x86/tsc x86/urgent \\\n>               x86/vmalloc\n> \n> I got a conflicted octopus merge somewhere in the middle of it. But it \n> only displayed sha1's when doing the merge. When i did a git log of that \n> sha1 it was not obvious at first sight which current branch maps to that \n> sha1. So i had to binary-search for the branch that caused the conflict \n> (!), to figure out that in the above sequence the 'x86/xen' bit is what \n> was causing trouble.\n> \n> It would be very nice if the Octopus merge tool displayed not only the \n> sha1's that it is merging, but also the refspec that it is processing. \n> And when it fails it would be nice if it displayed a for-dummies \n> \"Octopus merge failed when trying to merge x86/xen\" kind of thing.\n> \n> So mapping back sha1's to topic branch names does not seem to be very \n> easy at the moment. I realize that it is a fundamentally hard thing to \n> do, and the information is not reliable because branch names are \n> temporary - but in a sane branch setup it would be very nice to have \n> tools for that, to keep topics nice and tidy, and to annotate git logs \n> with the topical information.\n> \n\nBranch-names may be temporary, but we already record them for merge\nmessages so I don't see why we couldn't also use them when reporting\nerror messages but in a different format. I had a quick look at the\ngit-merge-octopus.sh but didn't find the obvious place to hack this\nthing in, so I'll have to defer that to someone for whom this is a\nmore pressing need (hint ;-)), or who knows their way around gits\nplumbing better than I do.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"93670","messageId":"20081022090010.GC4369@elte.hu","threadId":"16003","inReplyTo":"48FEE5B3.9060202@op5.se","subject":"Re: [irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2008-10-22T09:00:10Z","receivedAt":"2008-10-22T09:00:10Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Andreas Ericsson <ae@op5.se> wrote:\n\n> I imagine you'd want to use it to find out which branches you can (or \n> can't) merge, and in that case you need to know about all the topics \n> which have the commit. Assuming you don't go crazy cherry-picking and \n> criss-cross merging, it should only list a few. The output is not as \n> fancy as below, but it should be faster than the appended script (by \n> several orders of magnitude).\n\ni solved that particular problem quite well, based on suggestions in a \nthread earlier on the git-list. I'm using git branch --no-merged:\n\n earth4:~/tip> time todo-merge-all\n merging the following updated branches:\n merging linus ... ... merge done.\n\n real    0m2.865s\n user    0m2.580s\n sys     0m0.228s\n\nthat work step used to be over a minute! There are 233 topic branches at \nthe moment and 18 integration branches. Kudos for making this go really \nfast in 1.6.0.\n\nthe thing i'm after is to see the originator branch of changes. \"git \nname-rev\" was suggested by Santi Béjar in this thread and that is \nexactly what i need - i'll try to integrate it into some git-log-ish \noutput tool.\n\nOne thing i noticed is that 'git name-rev' can be quite slow for certain \ncommits:\n\n earth4:~/tip> time git name-rev 948f984\n 948f984 tags/tip-safe-poison-pointers-2008-05-26_08_52_Mon~1\n\n real    0m2.181s\n user    0m2.068s\n sys     0m0.092s\n\nWhich seems natural since it might have to dive back into history and \ncross-reference it to all names. (there's 400 branches and 450 tags in \nthis tree, so i'm certainly pushing things!)\n\nBut if i use that in my git-log-line summary tool it might become \nquadratic overhead (or worse) very quickly, with minutes of runtime.\n\n\tIngo\n"},{"id":"93672","messageId":"48FEF868.2010802@op5.se","threadId":"16003","inReplyTo":"20081022090010.GC4369@elte.hu","subject":"Re: [irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"Andreas Ericsson","fromEmail":"ae@op5.se","sentAt":"2008-10-22T09:54:48Z","receivedAt":"2008-10-22T09:54:48Z","isPatch":false,"sender":{"key":"ae@op5.se","avatar":"https://gravatar.com/avatar/426e89595c75a8f5252dd0c989e5fabe5bcac616e68557427ad9aef6b0ca342a?d=mp&s=160"},"body":"Ingo Molnar wrote:\n> * Andreas Ericsson <ae@op5.se> wrote:\n> \n>> I imagine you'd want to use it to find out which branches you can (or \n>> can't) merge, and in that case you need to know about all the topics \n>> which have the commit. Assuming you don't go crazy cherry-picking and \n>> criss-cross merging, it should only list a few. The output is not as \n>> fancy as below, but it should be faster than the appended script (by \n>> several orders of magnitude).\n> \n> i solved that particular problem quite well, based on suggestions in a \n> thread earlier on the git-list. I'm using git branch --no-merged:\n> \n>  earth4:~/tip> time todo-merge-all\n>  merging the following updated branches:\n>  merging linus ... ... merge done.\n> \n>  real    0m2.865s\n>  user    0m2.580s\n>  sys     0m0.228s\n> \n> that work step used to be over a minute! There are 233 topic branches at \n> the moment and 18 integration branches. Kudos for making this go really \n> fast in 1.6.0.\n> \n> the thing i'm after is to see the originator branch of changes. \"git \n> name-rev\" was suggested by Santi Béjar in this thread and that is \n> exactly what i need - i'll try to integrate it into some git-log-ish \n> output tool.\n> \n> One thing i noticed is that 'git name-rev' can be quite slow for certain \n> commits:\n> \n>  earth4:~/tip> time git name-rev 948f984\n>  948f984 tags/tip-safe-poison-pointers-2008-05-26_08_52_Mon~1\n> \n>  real    0m2.181s\n>  user    0m2.068s\n>  sys     0m0.092s\n> \n> Which seems natural since it might have to dive back into history and \n> cross-reference it to all names. (there's 400 branches and 450 tags in \n> this tree, so i'm certainly pushing things!)\n> \n> But if i use that in my git-log-line summary tool it might become \n> quadratic overhead (or worse) very quickly, with minutes of runtime.\n> \n\nWhat's the timing for \"git branch --contains 948f984\" ?\n\n\"git name-rev\" parses a lot more just to be able to print a pretty\nshort-name (the reversed \"git describe\") for you to use.\n\n-- \nAndreas Ericsson                   andreas.ericsson@op5.se\nOP5 AB                             www.op5.se\nTel: +46 8-230225                  Fax: +46 8-230231\n"},{"id":"93673","messageId":"20081022095818.GA27711@elte.hu","threadId":"16003","inReplyTo":"48FEF868.2010802@op5.se","subject":"Re: [irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"Ingo Molnar","fromEmail":"mingo@elte.hu","sentAt":"2008-10-22T09:58:18Z","receivedAt":"2008-10-22T09:58:18Z","isPatch":false,"sender":{"key":"mingo@elte.hu","avatar":null},"body":"\n* Andreas Ericsson <ae@op5.se> wrote:\n\n> Ingo Molnar wrote:\n>> * Andreas Ericsson <ae@op5.se> wrote:\n>>\n>>> I imagine you'd want to use it to find out which branches you can (or \n>>> can't) merge, and in that case you need to know about all the topics  \n>>> which have the commit. Assuming you don't go crazy cherry-picking and \n>>> criss-cross merging, it should only list a few. The output is not as  \n>>> fancy as below, but it should be faster than the appended script (by  \n>>> several orders of magnitude).\n>>\n>> i solved that particular problem quite well, based on suggestions in a  \n>> thread earlier on the git-list. I'm using git branch --no-merged:\n>>\n>>  earth4:~/tip> time todo-merge-all\n>>  merging the following updated branches:\n>>  merging linus ... ... merge done.\n>>\n>>  real    0m2.865s\n>>  user    0m2.580s\n>>  sys     0m0.228s\n>>\n>> that work step used to be over a minute! There are 233 topic branches \n>> at the moment and 18 integration branches. Kudos for making this go \n>> really fast in 1.6.0.\n>>\n>> the thing i'm after is to see the originator branch of changes. \"git  \n>> name-rev\" was suggested by Santi Béjar in this thread and that is  \n>> exactly what i need - i'll try to integrate it into some git-log-ish  \n>> output tool.\n>>\n>> One thing i noticed is that 'git name-rev' can be quite slow for \n>> certain commits:\n>>\n>>  earth4:~/tip> time git name-rev 948f984\n>>  948f984 tags/tip-safe-poison-pointers-2008-05-26_08_52_Mon~1\n>>\n>>  real    0m2.181s\n>>  user    0m2.068s\n>>  sys     0m0.092s\n>>\n>> Which seems natural since it might have to dive back into history and  \n>> cross-reference it to all names. (there's 400 branches and 450 tags in  \n>> this tree, so i'm certainly pushing things!)\n>>\n>> But if i use that in my git-log-line summary tool it might become  \n>> quadratic overhead (or worse) very quickly, with minutes of runtime.\n>>\n>\n> What's the timing for \"git branch --contains 948f984\" ?\n>\n> \"git name-rev\" parses a lot more just to be able to print a pretty\n> short-name (the reversed \"git describe\") for you to use.\n\nit takes much longer:\n\n earth4:~/tip> time git branch --contains 948f984\n [... 44 branches ...]\n real    0m9.596s\n user    0m9.151s\n sys     0m0.218s\n\n\tIngo\n"},{"id":"93674","messageId":"m3ljwgj3xy.fsf@localhost.localdomain","threadId":"16003","inReplyTo":"20081022061730.GA5749@elte.hu","subject":"Re: [irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2008-10-22T10:50:52Z","receivedAt":"2008-10-22T10:50:52Z","isPatch":false,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Ingo Molnar <mingo@elte.hu> writes:\n\n> Git recently started printing the branch name when creating commits:\n> \n>   [irq/urgent]: created 3786fc7: \"irq: make variable static\"\n> \n> very nice idea IMO! Having it all on one line allows me to double-check \n> that i indeed queued up a patch in the intended topic branch. Had it \n> read:\n> \n>   [irq/urgent]: created 3786fc7: \"printk: make variable static\"\n> \n> i'd have noticed the mistake immediately.\n> \n> this welcome enhancement made me remember of three usage problems i had \n> with Git recently:\n[...]\n\nAbout printing either forward (git-describe, e.g. v1.6.0.2-590-g67f6062)\nor backward (git-name-rev, e.g. tags/v1.6.0-rc2~8): you can use\ngit-name-rev in filter mode (git log ... | git name-rev --stdin), or\n\"git log --decorate\", or '%d' in --pretty format specifier (this is very\nnew thing).\n\nYou might be also interested in --abbrev-commit (when used with\n--pretty=oneline format), and --graph option to git-log (or\ngit-show-branch).  The \"(--merged | --no-merged | --contains) [<commit>]\"\noptions to git-branch might be also of interest...\n-- \nJakub Narebski\nPoland\nShadeHawk on #git\n"},{"id":"93683","messageId":"20081022132148.GA17393@coredump.intra.peff.net","threadId":"16003","inReplyTo":"m3ljwgj3xy.fsf@localhost.localdomain","subject":"Re: [irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2008-10-22T13:21:48Z","receivedAt":"2008-10-22T13:21:48Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, Oct 22, 2008 at 03:50:52AM -0700, Jakub Narebski wrote:\n\n> About printing either forward (git-describe, e.g. v1.6.0.2-590-g67f6062)\n> or backward (git-name-rev, e.g. tags/v1.6.0-rc2~8): you can use\n> git-name-rev in filter mode (git log ... | git name-rev --stdin), or\n> \"git log --decorate\", or '%d' in --pretty format specifier (this is very\n> new thing).\n\nThe \"--decorate\" and \"%d\" code just decorates branch _tips_. My\nimpression is that he wanted to see the branch mentioned even if the\ncommit was not at the tip. It would be possible to extend this to print\nname-rev output, but it would be computationally and memory-intensive, I\nsuspect.\n\n-Peff\n"},{"id":"93701","messageId":"alpine.DEB.1.00.0810221859590.22125@pacific.mpi-cbg.de.mpi-cbg.de","threadId":"16003","inReplyTo":"20081022132148.GA17393@coredump.intra.peff.net","subject":"Re: [irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-10-22T17:04:00Z","receivedAt":"2008-10-22T17:04:00Z","isPatch":false,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Wed, 22 Oct 2008, Jeff King wrote:\n\n> On Wed, Oct 22, 2008 at 03:50:52AM -0700, Jakub Narebski wrote:\n> \n> > About printing either forward (git-describe, e.g. \n> > v1.6.0.2-590-g67f6062) or backward (git-name-rev, e.g. \n> > tags/v1.6.0-rc2~8): you can use git-name-rev in filter mode (git log \n> > ... | git name-rev --stdin), or \"git log --decorate\", or '%d' in \n> > --pretty format specifier (this is very new thing).\n> \n> The \"--decorate\" and \"%d\" code just decorates branch _tips_. My \n> impression is that he wanted to see the branch mentioned even if the \n> commit was not at the tip. It would be possible to extend this to print \n> name-rev output, but it would be computationally and memory-intensive, I \n> suspect.\n\nFWIW I tried to do this \"on-the-fly\", but that did not bode well with \nthings like\n\n\tgit log --decorate=any --no-walk master $(git rev-parse master~10)\n\nIf you're interested in code:\n\nhttp://thread.gmane.org/gmane.comp.version-control.git/52123/focus=52126\n\nCiao,\nDscho\n"},{"id":"93985","messageId":"49049503.5080402@lsrfire.ath.cx","threadId":"16003","inReplyTo":"20081022075639.GA1284@elte.hu","subject":"Re: [irq/urgent]: created 3786fc7: \"irq: make variable static\"","fromName":"René Scharfe","fromEmail":"rene.scharfe@lsrfire.ath.cx","sentAt":"2008-10-26T16:04:19Z","receivedAt":"2008-10-26T16:04:19Z","isPatch":false,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Ingo Molnar schrieb:\n> The most useful angle would be if git log --format had a way to print \n> the reverse name. Then i could do a git-log-line script like:\n> \n>   git log --pretty=format:\"%h: %20N %s\" $@\n> \n> where %N prints the reverse name.\n> \n> While at it: it would be nice if git log had a way to crop string \n> output. For example i'd love to use:\n> \n>   git log --pretty=format:\"%h: %60s\" $@\n> \n> which would print out at most 60 characters from the first commit line.\n> \n> That way i can see it properly on an 80 width terminal and can paste it \n> into email without linewraps, etc. But --pretty=format does not seem to \n> know width restrictions.\n\nYou don't need support for format string cropping in git for the latter\nexample, you can use cut instead:\n\n   git log --pretty=format:%h:\\ %s $@ | cut -b-70\n\nBut I only realized that after I had written the following patch. :)\nWould this feature still be useful?\n\nThanks,\nRené\n\n---\n Documentation/pretty-formats.txt |    5 +++++\n pretty.c                         |   30 ++++++++++++++++++++++++++++--\n 2 files changed, 33 insertions(+), 2 deletions(-)\n\ndiff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt\nindex f18d33e..cc76c45 100644\n--- a/Documentation/pretty-formats.txt\n+++ b/Documentation/pretty-formats.txt\n@@ -128,6 +128,11 @@ The placeholders are:\n - '%n': newline\n - '%x00': print a byte from a hex code\n \n++\n+You can also specify a maximum width for each field after the '%', e.g.\n+'%60s' will show the first sixty characters of the subject (or less if\n+it's shorter).\n+\n * 'tformat:'\n +\n The 'tformat:' format works exactly like 'format:', except that it\ndiff --git a/pretty.c b/pretty.c\nindex 1e79943..74e8932 100644\n--- a/pretty.c\n+++ b/pretty.c\n@@ -498,8 +498,8 @@ static void format_decoration(struct strbuf *sb, const struct commit *commit)\n \t\tstrbuf_addch(sb, ')');\n }\n \n-static size_t format_commit_item(struct strbuf *sb, const char *placeholder,\n-                               void *context)\n+static size_t do_format_commit_item(struct strbuf *sb, const char *placeholder,\n+\t\tvoid *context)\n {\n \tstruct format_commit_context *c = context;\n \tconst struct commit *commit = c->commit;\n@@ -621,6 +621,32 @@ static size_t format_commit_item(struct strbuf *sb, const char *placeholder,\n \treturn 0;\t/* unknown placeholder */\n }\n \n+static size_t format_commit_item(struct strbuf *sb, const char *placeholder,\n+\t\tvoid *context)\n+{\n+\tsize_t digits = 0;\n+\tsize_t maxlen = 0;\n+\tsize_t consumed;\n+\n+\tif (isdigit(placeholder[0])) {\n+\t\tdo {\n+\t\t\tdigits++;\n+\t\t\tmaxlen *= 10;\n+\t\t\tmaxlen += placeholder[0] - '0';\n+\t\t\tplaceholder++;\n+\t\t} while (isdigit(placeholder[0]));\n+\t\tmaxlen += sb->len;\n+\t}\n+\n+\tconsumed = do_format_commit_item(sb, placeholder, context);\n+\tif (!consumed)\n+\t\treturn 0;\n+\n+\tif (digits && sb->len > maxlen)\n+\t\tstrbuf_setlen(sb, maxlen);\n+\treturn digits + consumed;\n+}\n+\n void format_commit_message(const struct commit *commit,\n \t\t\t   const void *format, struct strbuf *sb,\n \t\t\t   enum date_mode dmode)\n-- \n1.6.0.3.514.g2f91b\n"}]}