&gt; I think it is quite telling that the Linux kernel developers themselves prefer a simple, linear history in the end<p>What do you mean? This is what the current git history of the linux kernel looks like:<p><pre><code>    *   12b9fa6 Merge branch &#x27;for-linus&#x27; of git:&#x2F;&#x2F;git.kernel.org&#x2F;pu
    |\  
    | * 5129fa4 do_last(): ELOOP failure exit should be done after 
    | * a7f7754 should_follow_link(): validate -&gt;d_seq after having
    | * d456564 namei: -&gt;d_inode of a pinned dentry is stable only 
    | * c80567c do_last(): don&#x27;t let a bogus return value from -&gt;op
    | * 0fcbf99 fs: return -EOPNOTSUPP if clone is not supported
    | * b6853f7 hpfs: don&#x27;t truncate the file when delete fails
    * |   340b3a5 Merge tag &#x27;armsoc-fixes&#x27; of git:&#x2F;&#x2F;git.kernel.org&#x2F;
    |\ \  
    | * \   d877a21 Merge tag &#x27;renesas-soc-fixes-for-v4.5&#x27; of git:&#x2F;
    | |\ \  
    | | * | 901c5ff ARM: shmobile: Remove shmobile_boot_arg
    | | * | 4e960f5 ARM: shmobile: Move shmobile_smp_{mpidr, fn, ar
    | | * | b1568d8 ARM: shmobile: r8a7779: Remove remainings of re
    | | * | d2613f5 ARM: shmobile: Move shmobile_scu_base from .tex
    | * | | 7931845 MAINTAINERS: Extend info, add wiki and ml for m
    | * | |   9fa6c2b Merge tag &#x27;omap-for-v4.5&#x2F;fixes-rc5&#x27; of git:&#x2F;&#x2F;
    | |\ \ \  
    | | * | | 3f315c5 ARM: OMAP2+: Fix onenand initialization to av
    | | * | | e327b3f Revert &quot;regulator: tps65217: remove tps65217.
    | * | | | a9e5547 MAINTAINERS: alpine: add a new maintainer and
    | * | | | 5e45a25 ARM: at91&#x2F;dt: fix typo in sama5d2 pinmux desc
    | * | | |   b223c9f Merge tag &#x27;imx-fixes-4.5&#x27; of git:&#x2F;&#x2F;git.kern
    | |\ \ \ \  
    | | * | | | f5d0ca2 ARM: dts: imx6: remove bogus interrupt-pare
    | | | |&#x2F; &#x2F;  
    | | |&#x2F;| |   
    | * | | |   e3acd74 Merge tag &#x27;omap-for-v4.5&#x2F;fixes-rc3-v2&#x27; of g
    | |\ \ \ \  
    | | | |&#x2F; &#x2F;  
    | | |&#x2F;| |   
    | | * | | cf26f11 ARM: OMAP2+: Fix omap_device for module reloa
    | | * | | 08c78e9 ARM: OMAP2+: Improve omap_device error for dr
    | | * | | bf26927 ARM: DTS: am57xx-beagle-x15: Select SYS_CLK2 
    | | * | | a5b8751 ARM: dts: am335x&#x2F;am57xx: replace gpio-key,wak
    | | * | | 5f35dc4 ARM: OMAP2+: Set system_rev from ATAGS for n9
    | * | | |   74a46ec Merge tag &#x27;mvebu-fixes-4.5-2&#x27; of git:&#x2F;&#x2F;git.
    | |\ \ \ \  
    | | * | | | 44361a2 ARM: dts: orion5x: fix the missing mtd flas
    | | * | | | 9d021c9 ARM: dts: kirkwood: use unique machine name
    * | | | | |   691429e Merge branch &#x27;akpm&#x27; (patches from Andrew)
    |\ \ \ \ \ \  
    | * | | | | | 7f6d5b5 dax: move writeback calls into the filesy
</code></pre>
Merge commits galore.