RelStat (draft)
Junio C Hamano committed
Mar 13, 2013 at 13:00 UTC
32833a56b47aa13918a904fe052dbd2a5bf0c41c
1 file changed
+133
RelStat
new
+133
@@ -0,0 +1,133 @@
1
+#!/bin/sh
2
+
3
+handle () {
4
+ old=$1 new=$2
5
+ days=$((
6
+ ($(git log -1 --format=%ct "$new"^0) -
7
+ $(git log -1 --format=%ct "$old"^0))
8
+ / ( 3600 * 24 )
9
+ ))
10
+ commits=$( git rev-list --no-merges "$old..$new" | wc -l )
11
+ cpd=$(echo 2k $commits $days / p | dc)
12
+
13
+if :; then
14
+ mod=- mpd=-
15
+else
16
+ common=$(Meta/Linus -s $old $new -- '*.[ch]')
17
+ total=${common#?* }
18
+ common=${common% ?*}
19
+ removed=$(( $total - $common ))
20
+
21
+ common=$(Meta/Linus -s $new $old -- '*.[ch]')
22
+ total=${common#?* }
23
+ common=${common% ?*}
24
+ added=$(( $total - $common ))
25
+
26
+ mod=$(( $removed + $added ))
27
+ mpd=$(echo 2k $mod $days / p | dc)
28
+fi
29
+ mod2=$(
30
+ (
31
+ echo 0
32
+ git diff --numstat -M $old $new -- '*.[ch]' |
33
+ sed -e 's/^\([0-9]*\) \([0-9]*\) .*/\1 + \2 +/'
34
+ echo p
35
+ ) | dc
36
+ )
37
+ mpd2=$(echo 2k $mod2 $days / p | dc)
38
+
39
+ echo "$new $days $commits $cpd $mod $mpd $mod2 $mpd2"
40
+}
41
+
42
+releases='
43
+v1.3.0 v1.3.1 v1.3.2 v1.3.3 v1.4.0 v1.4.1 v1.4.2 v1.4.3 v1.4.4 v1.5.0
44
+v1.5.1 v1.5.2 v1.5.3 v1.5.4 v1.5.5 v1.5.6 v1.6.0 v1.6.1 v1.6.2 v1.6.3
45
+v1.6.4 v1.6.5 v1.6.6 v1.7.0 v1.7.1 v1.7.2 v1.7.3 v1.7.4 v1.7.5 v1.7.6
46
+v1.7.7 v1.7.8 v1.7.9 v1.7.10 v1.7.11 v1.7.12 v1.8.0
47
+v1.8.1 v1.8.2
48
+'
49
+
50
+old=
51
+for new in $releases
52
+do
53
+ if test -n "$old"
54
+ then
55
+ handle "$old" "$new"
56
+ fi
57
+ old=$new
58
+done
59
+
60
+exit
61
+----------------------------------------------------------------
62
+v1.3.1 6 14 2.33 33 5.50 41 6.83
63
+v1.3.2 8 18 2.25 60 7.50 66 8.25
64
+v1.3.3 11 24 2.18 201 18.27 236 21.45
65
+v1.4.0 25 621 24.84 9935 397.40 12385 495.40
66
+v1.4.1 21 196 9.33 3055 145.47 3419 162.80
67
+v1.4.2 42 338 8.04 5032 119.80 5565 132.50
68
+v1.4.3 66 647 9.80 9646 146.15 13496 204.48
69
+v1.4.4 27 322 11.92 7489 277.37 8041 297.81
70
+
71
+v1.5.0 90 1448 16.08 12369 137.43 13640 151.55
72
+v1.5.1 49 643 13.12 7822 159.63 8213 167.61
73
+v1.5.2 46 575 12.50 7604 165.30 8273 179.84
74
+v1.5.3 104 1322 12.71 8081 77.70 9538 91.71
75
+v1.5.4 152 1595 10.49 21422 140.93 24934 164.03
76
+v1.5.5 66 729 11.04 9790 148.33 12172 184.42
77
+v1.5.6 71 569 8.01 7091 99.87 8354 117.66
78
+v1.6.0 59 731 12.38 16709 283.20 19481 330.18
79
+v1.6.1 129 1033 8.00 10316 79.96 14262 110.55
80
+v1.6.2 69 499 7.23 4835 70.07 5322 77.13
81
+v1.6.3 63 692 10.98 6642 105.42 8687 137.88
82
+v1.6.4 83 500 6.02 13571 163.50 14296 172.24
83
+v1.6.5 72 412 5.72 5018 69.69 5623 78.09
84
+v1.6.6 74 483 6.52 6011 81.22 6730 90.94
85
+v1.7.0 51 569 11.15 7698 150.94 8635 169.31
86
+v1.7.1 70 477 6.81 5830 83.28 6558 93.68
87
+v1.7.2 88 532 6.04 5615 63.80 6380 72.50
88
+v1.7.3 59 481 8.15 20753 351.74 21473 363.94
89
+v1.7.4 134 746 5.56 8527 63.63 9744 72.71
90
+v1.7.5 83 548 6.60 6766 81.51 7543 90.87
91
+v1.7.6 63 427 6.77 3962 62.88 4351 69.06
92
+v1.7.7 96 563 5.86 8928 93.00 10107 105.28
93
+v1.7.8 62 426 6.87 5098 82.22 5463 88.11
94
+v1.7.9 56 391 6.98 6338 113.17 6886 122.96
95
+v1.7.10 69 440 6.37 5051 73.20 7271 105.37
96
+v1.7.11 72 652 9.05 7354 102.13 8863 123.09
97
+v1.7.12 63 382 6.06 3060 48.57 3411 54.14
98
+v1.8.0 62 497 8.01 5611 90.50 6037 97.37
99
+v1.8.1 71 348 4.90 2921 41.14 6047 85.16
100
+v1.8.2 71 635 8.94 5881 82.83 6355 89.50
101
+----------------------------------------------------------------
102
+
103
+<tr><th>release</th><th>days</th><th>commits</th><th>commit/day</th><th>modified</th><th>mod/day</th><th>modified2</th><th>mod2/day</th></tr>
104
+<tr><td>v1.5.0</td><td>90</td><td>1448</td><td>16.08</td><td>12369</td><td>137.43</td><td>13640</td><td>151.55</td></tr>
105
+<tr><td>v1.5.1</td><td>49</td><td>643</td><td>13.12</td><td>7822</td><td>159.63</td><td>8213</td><td>167.61</td></tr>
106
+<tr><td>v1.5.2</td><td>46</td><td>575</td><td>12.50</td><td>7604</td><td>165.30</td><td>8273</td><td>179.84</td></tr>
107
+<tr><td>v1.5.3</td><td>104</td><td>1322</td><td>12.71</td><td>8081</td><td>77.70</td><td>9538</td><td>91.71</td></tr>
108
+<tr><td>v1.5.4</td><td>152</td><td>1595</td><td>10.49</td><td>21422</td><td>140.93</td><td>24934</td><td>164.03</td></tr>
109
+<tr><td>v1.5.5</td><td>66</td><td>729</td><td>11.04</td><td>9790</td><td>148.33</td><td>12172</td><td>184.42</td></tr>
110
+<tr><td>v1.5.6</td><td>71</td><td>569</td><td>8.01</td><td>7091</td><td>99.87</td><td>8354</td><td>117.66</td></tr>
111
+<tr><td>v1.6.0</td><td>59</td><td>731</td><td>12.38</td><td>16709</td><td>283.20</td><td>19481</td><td>330.18</td></tr>
112
+<tr><td>v1.6.1</td><td>129</td><td>1033</td><td>8.00</td><td>10316</td><td>79.96</td><td>14262</td><td>110.55</td></tr>
113
+<tr><td>v1.6.2</td><td>69</td><td>499</td><td>7.23</td><td>4835</td><td>70.07</td><td>5322</td><td>77.13</td></tr>
114
+<tr><td>v1.6.3</td><td>63</td><td>692</td><td>10.98</td><td>6642</td><td>105.42</td><td>8687</td><td>137.88</td></tr>
115
+<tr><td>v1.6.4</td><td>83</td><td>500</td><td>6.02</td><td>13571</td><td>163.50</td><td>14296</td><td>172.24</td></tr>
116
+<tr><td>v1.6.5</td><td>72</td><td>412</td><td>5.72</td><td>5018</td><td>69.69</td><td>5623</td><td>78.09</td></tr>
117
+<tr><td>v1.6.6</td><td>74</td><td>483</td><td>6.52</td><td>6011</td><td>81.22</td><td>6730</td><td>90.94</td></tr>
118
+<tr><td>v1.7.0</td><td>51</td><td>569</td><td>11.15</td><td>7698</td><td>150.94</td><td>8635</td><td>169.31</td></tr>
119
+<tr><td>v1.7.1</td><td>70</td><td>477</td><td>6.81</td><td>5830</td><td>83.28</td><td>6558</td><td>93.68</td></tr>
120
+<tr><td>v1.7.2</td><td>88</td><td>532</td><td>6.04</td><td>5615</td><td>63.80</td><td>6380</td><td>72.50</td></tr>
121
+<tr><td>v1.7.3</td><td>59</td><td>481</td><td>8.15</td><td>20753</td><td>351.74</td><td>21473</td><td>363.94</td></tr>
122
+<tr><td>v1.7.4</td><td>134</td><td>746</td><td>5.56</td><td>8527</td><td>63.63</td><td>9744</td><td>72.71</td></tr>
123
+<tr><td>v1.7.5</td><td>83</td><td>548</td><td>6.60</td><td>6766</td><td>81.51</td><td>7543</td><td>90.87</td></tr>
124
+<tr><td>v1.7.6</td><td>63</td><td>427</td><td>6.77</td><td>3962</td><td>62.88</td><td>4351</td><td>69.06</td></tr>
125
+<tr><td>v1.7.7</td><td>96</td><td>563</td><td>5.86</td><td>8928</td><td>93.00</td><td>10107</td><td>105.28</td></tr>
126
+<tr><td>v1.7.8</td><td>62</td><td>426</td><td>6.87</td><td>5098</td><td>82.22</td><td>5463</td><td>88.11</td></tr>
127
+<tr><td>v1.7.9</td><td>56</td><td>391</td><td>6.98</td><td>6338</td><td>113.17</td><td>6886</td><td>122.96</td></tr>
128
+<tr><td>v1.7.10</td><td>69</td><td>440</td><td>6.37</td><td>5051</td><td>73.20</td><td>7271</td><td>105.37</td></tr>
129
+<tr><td>v1.7.11</td><td>72</td><td>652</td><td>9.05</td><td>7354</td><td>102.13</td><td>8863</td><td>123.09</td></tr>
130
+<tr><td>v1.7.12</td><td>63</td><td>382</td><td>6.06</td><td>3060</td><td>48.57</td><td>3411</td><td>54.14</td></tr>
131
+<tr><td>v1.8.0</td><td>62</td><td>497</td><td>8.01</td><td>5611</td><td>90.50</td><td>6037</td><td>97.37</td></tr>
132
+<tr><td>v1.8.1</td><td>71</td><td>348</td><td>4.90</td><td>2921</td><td>41.14</td><td>6047</td><td>85.16</td></tr>
133
+<tr><td>v1.8.2</td><td>71</td><td>635</td><td>8.94</td><td>5881</td><td>82.83</td><td>6355</td><td>89.50</td></tr>