Last active
August 29, 2015 14:01
-
-
Save petersenna/ceb0636736980b418d19 to your computer and use it in GitHub Desktop.
Getting the age of the (last) lines your commits are touching
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
What is the age of the lines my patches are touching? | |
Apply all your patches in a local branch of linux-next, but be aware that some commands | |
are executed on remotes/linux-next/master while other on the branch with the changes. | |
1 - Get git diff. -U0 is very important here | |
#### On the branch with the changes #### | |
$ git diff -U0 remotes/linux-next/master > /tmp/1.patch | |
2 - Get rid of useless lines | |
$ cat 1.patch |grep "\(diff\|@@\)" > /tmp/2.txt | |
3 - Parse 2.txt with: | |
-- // -- | |
#!/usr/bin/perl | |
use strict; | |
use File::Slurp; | |
my $theInput = read_file("/tmp/2.txt"); | |
my $file; | |
my $lineNumber; | |
my $buf; | |
foreach my $line (split("\n", $theInput)){ | |
if ($line =~ "^diff"){ | |
print "git blame $file -L $lineNumber,$lineNumber\n"; | |
# print "$file:$lineNumber\n"; | |
($file) = $line =~ /diff\s--git\sa\/(.*)\s/; | |
} else { | |
($lineNumber) = $line =~ /@@.*\-([0-9]*).*/; | |
} | |
} | |
-- // -- | |
$ parser1.pl > /tmp/runme.sh | |
$ chmod +x /tmp/runme.sh | |
4 - Run the runme.sh script | |
#### On the master branch #### | |
$ cd /path/to/linux-next | |
$ git checkout remotes/linux-next/master | |
$ /tmp/runme.sh > /tmp/3.txt | |
4 - Parse 3.txt with: | |
-- // -- | |
#!/usr/bin/perl | |
use strict; | |
use File::Slurp; | |
use DateTime; | |
use DateTime::Format::Duration; | |
my $d2 = DateTime->new(year => 2014, month => 5, day => 18); | |
my $theInput = read_file("/tmp/3.txt"); | |
foreach my $line (split("\n", $theInput)){ | |
my ($year) = $line =~ /([0-9]*)\-[0-9]*\-[0-9]*/; | |
my ($month) = $line =~ /[0-9]*\-([0-9]*)\-[0-9]*/; | |
my ($day) = $line =~ /[0-9]*\-[0-9]*\-([0-9]*)/; | |
my $d1 = DateTime->new(year => $year, month => $month, day => $day); | |
my $dur = ($d1 > $d2 ? ($d1->subtract_datetime_absolute($d2)) : | |
($d2->subtract_datetime_absolute($d1))); | |
my $f = DateTime::Format::Duration->new(pattern => | |
'%Y years, %m months, %e days, %H hours, %M minutes, %S seconds'); | |
my $dayCount = $d1->delta_days($d2)->delta_days; | |
print "$year-$month-$day,$dayCount\n"; | |
} | |
-- // -- | |
### Delete empty lines on /tmp/3.txt ### | |
$ /tmp/parser2.pl > /tmp/out1.csv | |
5 - Open out1.csv in spreadsheet app to calculate average, min and max | |
Hint: There is a commented line on parser.pl which can be uncommented to | |
print file:line which can make the spreadsheet look good. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
arch/arc/kernel/kprobes.c:386,2013-01-22,481 | |
arch/arm/mach-imx/iomux-imx31.c:65,2008-07-05,2143 | |
arch/arm/mach-omap2/omap_hwmod.c:871,2009-09-03,1718 | |
arch/arm/mach-orion5x/ts78xx-setup.c:457,2009-02-06,1927 | |
arch/arm/mach-s3c24xx/mach-osiris-dvs.c:90,2009-11-13,1647 | |
arch/ia64/kernel/perfmon_default_smpl.c:60,2005-04-16,3319 | |
arch/mips/sibyte/bcm1480/setup.c:79,2007-10-11,2411 | |
arch/powerpc/oprofile/op_model_cell.c:1126,2007-07-20,2494 | |
arch/powerpc/platforms/83xx/usb.c:252,2008-01-08,2322 | |
arch/powerpc/platforms/cell/ras.c:237,2007-04-23,2582 | |
drivers/clk/samsung/clk-s3c2410-dclk.c:81,2014-05-09,9 | |
drivers/crypto/caam/caamalg.c:801,2011-07-15,1038 | |
drivers/crypto/caam/ctrl.c:301,2012-06-22,695 | |
drivers/crypto/nx/nx-842.c:748,2012-07-19,668 | |
drivers/crypto/ux500/hash/hash_core.c:1363,2012-04-30,748 | |
drivers/firmware/efi/efi-pstore.c:262,2013-02-08,464 | |
drivers/gpu/drm/drm_crtc.c:2659,2011-11-14,916 | |
drivers/gpu/drm/i810/i810_dma.c:881,2005-09-25,3157 | |
drivers/gpu/drm/i915/i915_debugfs.c:2654,2013-11-01,198 | |
drivers/gpu/drm/i915/intel_sprite.c:756,2012-01-03,866 | |
drivers/gpu/drm/msm/msm_drv.c:738,2013-07-19,303 | |
drivers/gpu/drm/nouveau/nouveau_bios.c:2048,2009-12-11,1619 | |
drivers/gpu/drm/omapdrm/omap_drv.c:439,2011-11-12,918 | |
drivers/gpu/drm/tegra/dpaux.c:262,2013-11-15,184 | |
drivers/i2c/busses/i2c-s3c2410.c:565,2005-04-16,3319 | |
drivers/infiniband/core/cache.c:248,2006-06-17,2892 | |
drivers/infiniband/hw/amso1100/c2.c:867,2006-09-22,2795 | |
drivers/infiniband/hw/ehca/ehca_mrmw.c:2112,2007-07-12,2502 | |
drivers/infiniband/hw/ipath/ipath_file_ops.c:2157,2006-03-29,2972 | |
drivers/infiniband/hw/ipath/ipath_iba6110.c:1455,2006-03-29,2972 | |
drivers/infiniband/hw/nes/nes_cm.c:3014,2008-02-04,2295 | |
drivers/infiniband/hw/nes/nes_nic.c:1029,2008-02-04,2295 | |
drivers/infiniband/hw/nes/nes_utils.c:79,2011-09-25,966 | |
drivers/infiniband/hw/qib/qib_file_ops.c:1892,2010-05-23,1456 | |
drivers/infiniband/hw/qib/qib_iba7322.c:6954,2010-05-23,1456 | |
drivers/infiniband/hw/qib/qib_qp.c:1347,2013-06-15,337 | |
drivers/mailbox/omap-mailbox.c:88,2006-12-07,2719 | |
drivers/md/bcache/debug.c:251,2013-03-23,421 | |
drivers/media/i2c/s5k5baf.c:1341,2013-12-05,164 | |
drivers/media/media-devnode.c:204,2009-12-09,1621 | |
drivers/media/pci/saa7164/saa7164-api.c:736,2010-07-31,1387 | |
drivers/media/platform/davinci/vpbe.c:541,2011-06-17,1066 | |
drivers/media/platform/davinci/vpfe_capture.c:951,2009-07-06,1777 | |
drivers/media/platform/exynos4-is/fimc-isp-video.c:338,2013-12-20,149 | |
drivers/media/platform/exynos4-is/fimc-lite.c:1228,2012-04-27,751 | |
drivers/media/rc/fintek-cir.c:664,2011-05-25,1089 | |
drivers/media/rc/ite-cir.c:1684,2011-03-16,1159 | |
drivers/media/rc/nuvoton-cir.c:1198,2010-10-07,1319 | |
drivers/media/tuners/mt2060.c:243,2006-04-17,2953 | |
drivers/media/tuners/mt2266.c:243,2007-07-25,2489 | |
drivers/media/usb/cpia2/cpia2_usb.c:478,2006-02-27,3002 | |
drivers/mfd/arizona-core.c:93,2012-06-19,698 | |
drivers/mfd/htc-i2cpld.c:361,2010-01-19,1580 | |
drivers/mfd/pcf50633-irq.c:75,2010-05-12,1467 | |
drivers/mmc/core/sdio_bus.c:195,2010-10-02,1324 | |
drivers/mmc/host/sdhci.c:2745,2011-10-03,958 | |
drivers/mtd/mtdpart.c:588,2010-09-17,1339 | |
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c:1395,2011-06-14,1069 | |
drivers/net/ethernet/freescale/ucc_geth_ethtool.c:264,2007-07-19,2495 | |
drivers/net/ethernet/intel/i40e/i40e_dcb.c:369,2014-01-17,121 | |
drivers/net/ethernet/neterion/vxge/vxge-config.c:142,2010-12-10,1255 | |
drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c:3088,2013-01-01,502 | |
drivers/net/ethernet/ti/davinci_cpdma.c:466,2010-09-15,1341 | |
drivers/net/irda/mcs7780.c:690,2006-05-25,2915 | |
drivers/net/irda/via-ircc.c:986,2005-04-16,3319 | |
drivers/net/wireless/ath/ath5k/eeprom.c:1733,2009-04-30,1844 | |
drivers/net/wireless/ath/wcn36xx/main.c:964,2013-10-08,222 | |
drivers/net/wireless/cw1200/cw1200_spi.c:282,2013-09-23,237 | |
drivers/net/wireless/cw1200/sta.c:2309,2013-05-24,359 | |
drivers/net/wireless/ipw2x00/ipw2200.c:10807,2005-03-25,3341 | |
drivers/net/wireless/iwlegacy/3945-mac.c:247,2011-02-21,1182 | |
drivers/net/wireless/iwlegacy/4965-mac.c:3388,2011-08-30,992 | |
drivers/net/wireless/iwlegacy/4965.c:450,2011-02-21,1182 | |
drivers/net/wireless/mwifiex/scan.c:1368,2011-03-21,1154 | |
drivers/net/wireless/rt2x00/rt2800lib.c:7966,2010-06-29,1419 | |
drivers/pcmcia/pcmcia_resource.c:420,2010-01-17,1582 | |
drivers/pinctrl/pinctrl-adi2.c:440,2013-09-03,257 | |
drivers/pinctrl/pinctrl-nomadik.c:1494,2012-12-17,517 | |
drivers/power/pm2301_charger.c:479,2012-05-14,734 | |
drivers/powercap/intel_rapl.c:1123,2013-10-17,213 | |
drivers/powercap/powercap_sys.c:338,2013-10-11,219 | |
drivers/rtc/interface.c:958,2010-09-23,1333 | |
drivers/s390/cio/eadm_sch.c:359,2012-08-28,628 | |
drivers/scsi/bnx2i/bnx2i_iscsi.c:2107,2010-07-01,1417 | |
drivers/scsi/isci/request.c:3527,2011-05-10,1104 | |
drivers/scsi/lpfc/lpfc_scsi.c:1956,2012-01-18,851 | |
drivers/scsi/megaraid/megaraid_sas_fusion.c:875,2010-12-21,1244 | |
drivers/scsi/sun3_scsi_vme.c:565,2005-04-16,3319 | |
drivers/staging/gdm72xx/gdm_wimax.c:191,2012-05-15,733 | |
drivers/staging/lustre/lustre/ptlrpc/gss/gss_generic_token.c:295,2013-05-02,381 | |
drivers/staging/media/as102/as102_usb_drv.c:470,2011-10-31,930 | |
drivers/staging/rtl8188eu/core/rtw_ap.c:1833,2013-08-21,270 | |
drivers/staging/rtl8188eu/core/rtw_ieee80211.c:654,2013-08-21,270 | |
drivers/staging/rtl8188eu/core/rtw_mlme_ext.c:1733,2013-08-21,270 | |
drivers/staging/rtl8188eu/core/rtw_recv.c:1743,2013-08-21,270 | |
drivers/staging/rtl8188eu/os_dep/ioctl_linux.c:5503,2013-08-21,270 | |
drivers/staging/rtl8188eu/os_dep/os_intfs.c:818,2013-08-21,270 | |
drivers/staging/rtl8192e/rtl8192e/r8192E_phy.c:790,2011-08-25,997 | |
drivers/staging/rtl8192e/rtl8192e/rtl_core.c:712,2011-08-25,997 | |
drivers/staging/rtl8192e/rtl8192e/rtl_wx.c:1122,2011-08-25,997 | |
drivers/staging/rtl8192e/rtllib_softmac.c:3262,2011-08-23,999 | |
drivers/staging/rtl8192e/rtllib_softmac_wx.c:660,2009-08-04,1748 | |
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac.c:2869,2009-11-03,1657 | |
drivers/staging/rtl8192u/ieee80211/ieee80211_softmac_wx.c:593,2009-11-03,1657 | |
drivers/staging/rtl8192u/ieee80211/rtl819x_HTProc.c:418,2009-11-03,1657 | |
drivers/staging/rtl8192u/r8192U_core.c:2178,2009-11-03,1657 | |
drivers/staging/rtl8192u/r819xU_phy.c:1061,2010-11-14,1281 | |
drivers/staging/rtl8712/ieee80211.c:367,2010-08-20,1367 | |
drivers/staging/rtl8712/os_intfs.c:309,2010-08-20,1367 | |
drivers/staging/rtl8712/rtl8712_recv.c:438,2010-08-20,1367 | |
drivers/staging/rtl8712/rtl871x_ioctl_linux.c:1688,2010-08-20,1367 | |
drivers/staging/rtl8712/rtl871x_mlme.c:1235,2010-08-20,1367 | |
drivers/staging/rtl8712/rtl871x_recv.c:656,2010-08-20,1367 | |
drivers/staging/rtl8723au/core/rtw_ap.c:1842,2014-03-28,51 | |
drivers/staging/rtl8723au/core/rtw_ieee80211.c:646,2014-03-28,51 | |
drivers/staging/rtl8723au/core/rtw_recv.c:1619,2014-03-28,51 | |
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c:3284,2014-03-28,51 | |
drivers/staging/rtl8723au/os_dep/os_intfs.c:428,2014-03-28,51 | |
drivers/staging/tidspbridge/rmgr/proc.c:671,2010-06-23,1425 | |
drivers/staging/vt6655/hostap.c:666,2009-04-25,1849 | |
drivers/staging/vt6655/wpactl.c:791,2013-03-18,426 | |
drivers/staging/vt6656/hostap.c:662,2009-06-13,1800 | |
drivers/staging/wlags49_h2/wl_priv.c:1698,2012-11-30,534 | |
drivers/tty/mxser.c:810,2008-02-07,2292 | |
drivers/tty/serial/mrst_max3110.c:437,2010-06-16,1432 | |
drivers/tty/tty_ldisc.c:77,2008-07-22,2126 | |
drivers/uio/uio_dmem_genirq.c:74,2012-09-25,600 | |
drivers/usb/dwc2/gadget.c:2554,2010-03-29,1511 | |
drivers/usb/gadget/fotg210-udc.c:523,2013-05-30,353 | |
drivers/usb/misc/sisusbvga/sisusb.c:1925,2005-04-16,3319 | |
drivers/uwb/rsv.c:632,2008-12-12,1983 | |
drivers/video/fbdev/pxa168fb.c:600,2009-02-11,1922 | |
drivers/virt/fsl_hypervisor.c:700,2011-06-09,1074 | |
fs/btrfs/dir-item.c:113,2007-11-16,2375 | |
fs/btrfs/disk-io.c:3908,2011-01-06,1228 | |
fs/btrfs/extent_map.c:439,2007-08-27,2456 | |
fs/btrfs/tree-log.c:232,2009-03-24,1881 | |
fs/jfs/jfs_metapage.c:572,2006-05-24,2916 | |
fs/proc/kcore.c:157,2009-09-22,1699 | |
fs/reiserfs/journal.c:1662,2005-07-12,3232 | |
kernel/debug/debug_core.c:267,2009-12-11,1619 | |
kernel/sched/core.c:7492,2013-11-07,192 | |
mm/rmap.c:1399,2008-10-18,2038 | |
net/9p/mod.c:180,2007-07-10,2504 | |
net/rds/ib_recv.c:1046,2009-02-24,1909 | |
net/rds/iw_rdma.c:545,2009-02-24,1909 | |
net/sunrpc/xprtrdma/svc_rdma_transport.c:621,2007-12-12,2349 | |
sound/ppc/snd_ps3.c:686,2009-06-10,1803 | |
sound/soc/codecs/wm8971.c:675,2008-09-10,2076 | |
sound/soc/intel/sst-haswell-ipc.c:828,2014-03-12,67 | |
sound/soc/omap/mcbsp.c:425,2010-02-22,1546 | |
sound/soc/pxa/pxa-ssp.c:115,2008-07-30,2118 | |
sound/soc/samsung/dma.c:241,2007-02-14,2650 | |
sound/soc/soc-dapm.c:2540,2012-07-05,682 | |
tools/perf/util/header.c:2225,2011-09-30,961 | |
tools/perf/util/symbol.c:443,2010-08-25,1362 | |
tools/perf/util/trace-event-read.c:260,2013-03-21,423 | |
,, | |
MIN,,9 | |
AVERAGE,,1384.025477707 | |
MAX,,3341 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment