Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@petersenna
Last active August 29, 2015 14:01
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save petersenna/ceb0636736980b418d19 to your computer and use it in GitHub Desktop.
Save petersenna/ceb0636736980b418d19 to your computer and use it in GitHub Desktop.
Getting the age of the (last) lines your commits are touching
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.
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