From 270c9402c20923df43086f2fb05f6d5f528e6bfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20Balogh?= Date: Thu, 16 Feb 2017 14:58:31 +0100 Subject: [PATCH 1/3] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0eab3678..199407c3 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,4 @@ CodeMetropolis See your software as never before. Official community page: https://plus.google.com/communities/110235162339639686953 +BlockModifier-API aviable at: https://github.com/blip24/BlockModifier-API From 0432da3a86db7dd7209b080e10e92ce38160a6e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gerg=C5=91=20Balogh?= Date: Thu, 16 Feb 2017 14:58:41 +0100 Subject: [PATCH 2/3] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 199407c3..7bdbb380 100644 --- a/README.md +++ b/README.md @@ -4,4 +4,5 @@ CodeMetropolis See your software as never before. Official community page: https://plus.google.com/communities/110235162339639686953 + BlockModifier-API aviable at: https://github.com/blip24/BlockModifier-API From 9e5e4acdd45b65711a961a69ceb43669fce3aa23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ott=C3=B3=20Radics?= Date: Tue, 8 May 2018 15:02:47 +0200 Subject: [PATCH 3/3] Implement #114 --- examples/gitstats/Test/a.dat | 2 + examples/gitstats/Test/b.dat | 2 + examples/gitstats/activity.html | 616 ++++++++++++++++++ examples/gitstats/arrow-down.gif | Bin 0 -> 73 bytes examples/gitstats/arrow-none.gif | Bin 0 -> 71 bytes examples/gitstats/arrow-up.gif | Bin 0 -> 73 bytes examples/gitstats/authors.html | 167 +++++ examples/gitstats/commits_by_year.dat | 3 + examples/gitstats/commits_by_year.plot | 10 + examples/gitstats/commits_by_year_month.dat | 6 + examples/gitstats/commits_by_year_month.plot | 13 + examples/gitstats/day_of_week.dat | 7 + examples/gitstats/day_of_week.plot | 10 + examples/gitstats/domains.dat | 2 + examples/gitstats/domains.plot | 9 + examples/gitstats/files.html | 107 +++ examples/gitstats/files_by_date.dat | 46 ++ examples/gitstats/files_by_date.plot | 14 + examples/gitstats/gitstats.cache | Bin 0 -> 6846 bytes examples/gitstats/gitstats.css | 142 ++++ examples/gitstats/hour_of_day.dat | 24 + examples/gitstats/hour_of_day.plot | 10 + examples/gitstats/index.html | 42 ++ examples/gitstats/lines.html | 28 + examples/gitstats/lines_of_code.dat | 76 +++ examples/gitstats/lines_of_code.plot | 13 + examples/gitstats/month_of_year.dat | 12 + examples/gitstats/month_of_year.plot | 10 + examples/gitstats/sortable.js | 340 ++++++++++ examples/gitstats/tags.html | 65 ++ .../converter/control/ConverterLoader.java | 3 + .../converter/control/ConverterType.java | 3 +- .../converter/gitstat/CdfTreeBuilder.java | 129 ++++ .../converter/gitstat/GitStatConverter.java | 36 + .../converter/gitstat/GitStatDatParser.java | 81 +++ .../converter/gitstat/GitStatFileHelper.java | 59 ++ .../converter/gitstat/GitStatHTMLParser.java | 111 ++++ .../converter/gitstat/PropertyCollector.java | 22 + .../gitstat/tests/ConverterLocatorTest.java | 35 + .../tests/GetLinesFromDatFilesTest.java | 39 ++ .../tests/GetPropertiesFromDatFilesTest.java | 48 ++ .../GetPropertyPreNameFromFileNameTest.java | 59 ++ .../gitstat/tests/GitStatHTMLParserTest.java | 88 +++ ...Test_CdfTreeBuilder_createTreeFromMap.java | 67 ++ .../Test_GitStatConverter_createElements.java | 52 ++ .../tests/Test_PropertyCollector_collect.java | 38 ++ .../tests/TreeBuilderAddPropertiesTest.java | 40 ++ .../tests/TreeBuilderCreateTreeTest.java | 44 ++ .../UnitGitStatFileHelperSearchFiles.java | 40 ++ .../tests/UnitGitsStatFileHelperLines.java | 57 ++ ...UnitTreeBuilderAddPropertiesToElement.java | 39 ++ .../tests/test_resource/TestDatParser/a.dat | 2 + .../tests/test_resource/TestDatParser/b.dat | 2 + .../test_resource/TestHTMLParser/.gitkeep | 0 .../TestHTMLParser/TestHTML.html | 26 + .../gitstat/tests/test_resource/activity.html | 616 ++++++++++++++++++ .../tests/test_resource/arrow-down.gif | Bin 0 -> 73 bytes .../tests/test_resource/arrow-none.gif | Bin 0 -> 71 bytes .../gitstat/tests/test_resource/arrow-up.gif | Bin 0 -> 73 bytes .../gitstat/tests/test_resource/authors.html | 167 +++++ .../tests/test_resource/commits_by_year.dat | 3 + .../tests/test_resource/commits_by_year.plot | 10 + .../test_resource/commits_by_year_month.dat | 6 + .../test_resource/commits_by_year_month.plot | 13 + .../tests/test_resource/day_of_week.dat | 7 + .../tests/test_resource/day_of_week.plot | 10 + .../gitstat/tests/test_resource/domains.dat | 2 + .../gitstat/tests/test_resource/domains.plot | 9 + .../gitstat/tests/test_resource/files.html | 107 +++ .../tests/test_resource/files_by_date.dat | 46 ++ .../tests/test_resource/files_by_date.plot | 14 + .../tests/test_resource/gitstats.cache | Bin 0 -> 6846 bytes .../gitstat/tests/test_resource/gitstats.css | 142 ++++ .../tests/test_resource/hour_of_day.dat | 24 + .../tests/test_resource/hour_of_day.plot | 10 + .../gitstat/tests/test_resource/index.html | 42 ++ .../gitstat/tests/test_resource/lines.html | 28 + .../tests/test_resource/lines_of_code.dat | 76 +++ .../tests/test_resource/lines_of_code.plot | 13 + .../tests/test_resource/month_of_year.dat | 12 + .../tests/test_resource/month_of_year.plot | 10 + .../gitstat/tests/test_resource/sortable.js | 340 ++++++++++ .../gitstat/tests/test_resource/tags.html | 65 ++ 83 files changed, 4667 insertions(+), 1 deletion(-) create mode 100644 examples/gitstats/Test/a.dat create mode 100644 examples/gitstats/Test/b.dat create mode 100644 examples/gitstats/activity.html create mode 100644 examples/gitstats/arrow-down.gif create mode 100644 examples/gitstats/arrow-none.gif create mode 100644 examples/gitstats/arrow-up.gif create mode 100644 examples/gitstats/authors.html create mode 100644 examples/gitstats/commits_by_year.dat create mode 100644 examples/gitstats/commits_by_year.plot create mode 100644 examples/gitstats/commits_by_year_month.dat create mode 100644 examples/gitstats/commits_by_year_month.plot create mode 100644 examples/gitstats/day_of_week.dat create mode 100644 examples/gitstats/day_of_week.plot create mode 100644 examples/gitstats/domains.dat create mode 100644 examples/gitstats/domains.plot create mode 100644 examples/gitstats/files.html create mode 100644 examples/gitstats/files_by_date.dat create mode 100644 examples/gitstats/files_by_date.plot create mode 100644 examples/gitstats/gitstats.cache create mode 100644 examples/gitstats/gitstats.css create mode 100644 examples/gitstats/hour_of_day.dat create mode 100644 examples/gitstats/hour_of_day.plot create mode 100644 examples/gitstats/index.html create mode 100644 examples/gitstats/lines.html create mode 100644 examples/gitstats/lines_of_code.dat create mode 100644 examples/gitstats/lines_of_code.plot create mode 100644 examples/gitstats/month_of_year.dat create mode 100644 examples/gitstats/month_of_year.plot create mode 100644 examples/gitstats/sortable.js create mode 100644 examples/gitstats/tags.html create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/CdfTreeBuilder.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/GitStatConverter.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/GitStatDatParser.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/GitStatFileHelper.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/GitStatHTMLParser.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/PropertyCollector.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/ConverterLocatorTest.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/GetLinesFromDatFilesTest.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/GetPropertiesFromDatFilesTest.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/GetPropertyPreNameFromFileNameTest.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/GitStatHTMLParserTest.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/Test_CdfTreeBuilder_createTreeFromMap.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/Test_GitStatConverter_createElements.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/Test_PropertyCollector_collect.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/TreeBuilderAddPropertiesTest.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/TreeBuilderCreateTreeTest.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/UnitGitStatFileHelperSearchFiles.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/UnitGitsStatFileHelperLines.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/UnitTreeBuilderAddPropertiesToElement.java create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/TestDatParser/a.dat create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/TestDatParser/b.dat create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/TestHTMLParser/.gitkeep create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/TestHTMLParser/TestHTML.html create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/activity.html create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/arrow-down.gif create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/arrow-none.gif create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/arrow-up.gif create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/authors.html create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/commits_by_year.dat create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/commits_by_year.plot create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/commits_by_year_month.dat create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/commits_by_year_month.plot create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/day_of_week.dat create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/day_of_week.plot create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/domains.dat create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/domains.plot create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/files.html create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/files_by_date.dat create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/files_by_date.plot create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/gitstats.cache create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/gitstats.css create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/hour_of_day.dat create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/hour_of_day.plot create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/index.html create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/lines.html create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/lines_of_code.dat create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/lines_of_code.plot create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/month_of_year.dat create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/month_of_year.plot create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/sortable.js create mode 100644 sources/codemetropolis-toolchain-converter/src/main/java/codemetropolis/toolchain/converter/gitstat/tests/test_resource/tags.html diff --git a/examples/gitstats/Test/a.dat b/examples/gitstats/Test/a.dat new file mode 100644 index 00000000..5a5a738d --- /dev/null +++ b/examples/gitstats/Test/a.dat @@ -0,0 +1,2 @@ +elso 34 +masodik 56 \ No newline at end of file diff --git a/examples/gitstats/Test/b.dat b/examples/gitstats/Test/b.dat new file mode 100644 index 00000000..3a8dbeea --- /dev/null +++ b/examples/gitstats/Test/b.dat @@ -0,0 +1,2 @@ +harmadik 65 +negyedik 18 \ No newline at end of file diff --git a/examples/gitstats/activity.html b/examples/gitstats/activity.html new file mode 100644 index 00000000..2859c96f --- /dev/null +++ b/examples/gitstats/activity.html @@ -0,0 +1,616 @@ + + + + + GitStats - RF2 + + + + + +

Activity

+ +

Weekly activity

+

Last 32 weeks

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3231302928272625242322212019181716151413121110987654321
+

Hour of Day

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Hour01234567891011121314151617181920212223
Commits0000000027177649883000302
%0.000.000.000.000.000.000.000.002.639.2122.379.217.895.2611.8410.5310.533.950.000.000.003.950.002.63
Hour of Day +

Day of Week

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DayTotal (%)
18 (10.53%)
26 (7.89%)
310 (13.16%)
431 (40.79%)
516 (21.05%)
62 (2.63%)
73 (3.95%)
Day of Week +

Hour of Week

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Weekday01234567891011121314151617181920212223
11121111
211121
312313
41310225422
523411311
611
712
+

Month of Year

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MonthCommits (%)
17 (9.21 %)
232 (42.11 %)
325 (32.89 %)
412 (15.79 %)
50 (0.00 %)
60 (0.00 %)
70 (0.00 %)
80 (0.00 %)
90 (0.00 %)
100 (0.00 %)
110 (0.00 %)
120 (0.00 %)
Month of Year +

Commits by + year/month

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MonthCommits
2017-022
2016-0411
2016-0325
2016-0230
2016-017
2014-041
Commits by year/month +

Commits by Year

+
+ + + + + + + + + + + + + + + + +
YearCommits (% of all)
20172 (2.63%)
201673 (96.05%)
20141 (1.32%)
Commits by Year +

Commits by Timezone

+ + + + + + + + + + + + + +
TimezoneCommits
+010056
+020020
+ diff --git a/examples/gitstats/arrow-down.gif b/examples/gitstats/arrow-down.gif new file mode 100644 index 0000000000000000000000000000000000000000..997f02f6b53ee1f68236c86178f5e06273b7432e GIT binary patch literal 73 zcmZ?wbhEHb6kyGG6G4(pDc_F49pBV3_t*qXJC?=)1P_h?k<^T Z_nGG6G4(pDc_F49pBV3_t*qXJC?;)1P_p?k<^T X_nGG6G4(pDc_F49pBV3_t*qXJC?=)1P_p?k<^T Z_n + + + + GitStats - RF2 + + + + + +

Authors

+ +

List of Authors

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AuthorCommits (%)+ lines- linesFirst commitLast commitAgeActive days# by commits
Attila Szabolics60 (78.95%)583522152016-01-172016-04-1487 days, 13:01:01221
berika11 (14.47%)14873492016-02-022016-03-0430 days, 23:03:5272
Gergő Balogh4 (5.26%)862014-04-082017-02-161045 days, 5:33:2033
Balogh Gergõ1 (1.32%)002016-01-182016-01-180:00:0014
+

Author of Month

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MonthAuthorCommits (%)Next top 5
2017-02Gergő Balogh2 (100.00% of 2)
2016-04Attila Szabolics11 (100.00% of 11)
2016-03Attila Szabolics22 (88.00% of 25)berika
2016-02Attila Szabolics22 (73.33% of 30)berika
2016-01Attila Szabolics5 (71.43% of 7)Gergő Balogh, Balogh Gergõ
2014-04Gergő Balogh1 (100.00% of 1)
+

Author of Year

+ + + + + + + + + + + + + + + + + + + + + + + + + +
YearAuthorCommits (%)Next top 5
2017Gergő Balogh2 (100.00% of 2)
2016Attila Szabolics60 (82.19% of 73)berika, Gergő Balogh, Balogh Gergõ
2014Gergő Balogh1 (100.00% of 1)
+

Commits by Domains

+
+ + + + + + + + + + + + +
DomainsTotal (%)
inf.u-szeged.hu72 (94.74%)
gmail.com4 (5.26%)
Commits by Domains + diff --git a/examples/gitstats/commits_by_year.dat b/examples/gitstats/commits_by_year.dat new file mode 100644 index 00000000..d047c5d9 --- /dev/null +++ b/examples/gitstats/commits_by_year.dat @@ -0,0 +1,3 @@ +2014 1 +2016 73 +2017 2 diff --git a/examples/gitstats/commits_by_year.plot b/examples/gitstats/commits_by_year.plot new file mode 100644 index 00000000..b2577aa4 --- /dev/null +++ b/examples/gitstats/commits_by_year.plot @@ -0,0 +1,10 @@ +set terminal svg +set size 1.0,0.5 + +set output 'commits_by_year.svg' +unset key +set xtics 1 rotate by 90 +set grid y +set ylabel "Commits" +set yrange [0:] +plot 'commits_by_year.dat' using 1:2:(0.5) w boxes fs solid diff --git a/examples/gitstats/commits_by_year_month.dat b/examples/gitstats/commits_by_year_month.dat new file mode 100644 index 00000000..af627be9 --- /dev/null +++ b/examples/gitstats/commits_by_year_month.dat @@ -0,0 +1,6 @@ +2014-04 1 +2016-01 7 +2016-02 30 +2016-03 25 +2016-04 11 +2017-02 2 diff --git a/examples/gitstats/commits_by_year_month.plot b/examples/gitstats/commits_by_year_month.plot new file mode 100644 index 00000000..f819b176 --- /dev/null +++ b/examples/gitstats/commits_by_year_month.plot @@ -0,0 +1,13 @@ +set terminal svg +set size 1.0,0.5 + +set output 'commits_by_year_month.svg' +unset key +set xdata time +set timefmt "%Y-%m" +set format x "%Y-%m" +set xtics rotate by 90 15768000 +set bmargin 5 +set grid y +set ylabel "Commits" +plot 'commits_by_year_month.dat' using 1:2:(0.5) w boxes fs solid diff --git a/examples/gitstats/day_of_week.dat b/examples/gitstats/day_of_week.dat new file mode 100644 index 00000000..b3425c60 --- /dev/null +++ b/examples/gitstats/day_of_week.dat @@ -0,0 +1,7 @@ +1 8 +2 6 +3 10 +4 31 +5 16 +6 2 +7 3 diff --git a/examples/gitstats/day_of_week.plot b/examples/gitstats/day_of_week.plot new file mode 100644 index 00000000..dcfe6abc --- /dev/null +++ b/examples/gitstats/day_of_week.plot @@ -0,0 +1,10 @@ +set terminal svg +set size 1.0,0.5 + +set output 'day_of_week.svg' +unset key +set xrange [0.5:7.5] +set xtics 1 +set grid y +set ylabel "Commits" +plot 'day_of_week.dat' using 1:2:(0.5) w boxes fs solid diff --git a/examples/gitstats/domains.dat b/examples/gitstats/domains.dat new file mode 100644 index 00000000..dfac244a --- /dev/null +++ b/examples/gitstats/domains.dat @@ -0,0 +1,2 @@ +inf.u-szeged.hu 1 72 +gmail.com 2 4 diff --git a/examples/gitstats/domains.plot b/examples/gitstats/domains.plot new file mode 100644 index 00000000..fdd0597f --- /dev/null +++ b/examples/gitstats/domains.plot @@ -0,0 +1,9 @@ +set terminal svg +set size 1.0,0.5 + +set output 'domains.svg' +unset key +unset xtics +set grid y +set ylabel "Commits" +plot 'domains.dat' using 2:3:(0.5) with boxes fs solid, '' using 2:3:1 with labels rotate by 45 offset 0,1 diff --git a/examples/gitstats/files.html b/examples/gitstats/files.html new file mode 100644 index 00000000..7196bc61 --- /dev/null +++ b/examples/gitstats/files.html @@ -0,0 +1,107 @@ + + + + + GitStats - RF2 + + + + + +

Files

+ +
+
Total files
+
164
+
Total lines
+
4205
+
Average file size
+
2564.02 bytes
+
+

File count by date

+ Files by Date +

Extensions

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExtensionFiles (%)Lines (%)Lines/file
6 (3.66%)30 (0.71%)5
classpath5 (3.05%)178 (4.23%)35
csv1 (0.61%)170 (4.04%)170
jar2 (1.22%)355 (8.44%)177
java122 (74.39%)7925 (188.47%)64
md1 (0.61%)8 (0.19%)8
project6 (3.66%)132 (3.14%)22
properties2 (1.22%)93 (2.21%)46
txt4 (2.44%)864 (20.55%)216
xml13 (7.93%)2856 (67.92%)219
xsd1 (0.61%)49 (1.17%)49
+ diff --git a/examples/gitstats/files_by_date.dat b/examples/gitstats/files_by_date.dat new file mode 100644 index 00000000..66c43008 --- /dev/null +++ b/examples/gitstats/files_by_date.dat @@ -0,0 +1,46 @@ +2014-04-08 1 +2016-01-11 1 +2016-01-17 115 +2016-01-18 111 +2016-01-18 115 +2016-01-18 117 +2016-02-02 130 +2016-02-04 130 +2016-02-04 131 +2016-02-05 130 +2016-02-17 131 +2016-02-22 131 +2016-02-22 132 +2016-02-23 131 +2016-02-24 131 +2016-02-24 136 +2016-02-25 131 +2016-02-25 138 +2016-02-25 139 +2016-02-26 139 +2016-02-27 139 +2016-02-27 142 +2016-02-28 142 +2016-03-01 141 +2016-03-01 142 +2016-03-04 143 +2016-03-09 145 +2016-03-11 145 +2016-03-11 146 +2016-03-16 147 +2016-03-16 149 +2016-03-16 152 +2016-03-17 152 +2016-03-17 153 +2016-03-18 153 +2016-03-30 157 +2016-03-31 158 +2016-03-31 159 +2016-03-31 160 +2016-03-31 162 +2016-04-01 162 +2016-04-04 163 +2016-04-07 163 +2016-04-08 163 +2016-04-14 163 +2017-02-16 163 diff --git a/examples/gitstats/files_by_date.plot b/examples/gitstats/files_by_date.plot new file mode 100644 index 00000000..62e8a671 --- /dev/null +++ b/examples/gitstats/files_by_date.plot @@ -0,0 +1,14 @@ +set terminal svg +set size 1.0,0.5 + +set output 'files_by_date.svg' +unset key +set xdata time +set timefmt "%Y-%m-%d" +set format x "%Y-%m-%d" +set grid y +set ylabel "Files" +set xtics rotate by 90 +set ytics autofreq +set bmargin 6 +plot 'files_by_date.dat' using 1:2 w steps diff --git a/examples/gitstats/gitstats.cache b/examples/gitstats/gitstats.cache new file mode 100644 index 0000000000000000000000000000000000000000..33ef9b0e41569b7f0eceff8bae8dc6cbf3f0db19 GIT binary patch literal 6846 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 + + + + GitStats - RF2 + + + + + +

GitStats - RF2

+ +
+
Project name
+
RF2
+
Generated
+
2018-03-22 09:49:02 (in 26 seconds)
+
Generator
+
GitStats (version 0432da3)
+
Report Period
+
2014-04-08 09:25:21 to 2017-02-16 14:58:41
+
Age
+
1046 days, 30 active days (2.87%)
+
Total Files
+
164
+
Total Lines of Code
+
4205 (6412 added, 2207 removed)
+
Total Commits
+
76 (average 2.5 commits per active day, 0.1 per all days)
+
Authors
+
4
+
+ diff --git a/examples/gitstats/lines.html b/examples/gitstats/lines.html new file mode 100644 index 00000000..c1166796 --- /dev/null +++ b/examples/gitstats/lines.html @@ -0,0 +1,28 @@ + + + + + GitStats - RF2 + + + + + +

Lines

+ +
+
Total lines
+
4205
+
+

Lines of Code

+ + diff --git a/examples/gitstats/lines_of_code.dat b/examples/gitstats/lines_of_code.dat new file mode 100644 index 00000000..3fa5f6e5 --- /dev/null +++ b/examples/gitstats/lines_of_code.dat @@ -0,0 +1,76 @@ +1396941921 0 +1452504811 0 +1453060938 0 +1453068424 0 +1453102121 0 +1453104098 -217 +1453126093 -217 +1453130990 -217 +1454405253 442 +1454427553 434 +1454576709 434 +1454579063 462 +1454582958 431 +1454594118 401 +1454597133 415 +1454598586 415 +1454678086 415 +1454679615 415 +1455709118 518 +1456136886 582 +1456141544 2837 +1456242593 2874 +1456316164 2987 +1456327721 2990 +1456392069 3098 +1456392194 3098 +1456393248 3098 +1456409001 3076 +1456412351 3076 +1456416701 3062 +1456418280 3062 +1456484025 3074 +1456485496 3074 +1456489011 3074 +1456519663 3106 +1456580378 3156 +1456603758 3256 +1456696878 3276 +1456842492 3276 +1456849729 3399 +1457080285 3548 +1457533152 3595 +1457703860 3662 +1457707720 3713 +1458128143 3727 +1458131273 3739 +1458132805 3795 +1458141379 3795 +1458142029 3795 +1458204586 3814 +1458205356 3813 +1458222783 3880 +1458226862 3944 +1458292814 3944 +1458297739 3944 +1459327406 3921 +1459413328 3989 +1459414771 4010 +1459416626 4010 +1459418656 4058 +1459420073 4058 +1459426128 4063 +1459430029 4093 +1459498049 4088 +1459499948 4088 +1459502395 4106 +1459503115 4106 +1459758884 4185 +1460016249 4185 +1460101920 4197 +1460616408 4197 +1460619190 4204 +1460619943 4205 +1460620999 4205 +1487253511 4205 +1487253521 4205 diff --git a/examples/gitstats/lines_of_code.plot b/examples/gitstats/lines_of_code.plot new file mode 100644 index 00000000..7bca54c9 --- /dev/null +++ b/examples/gitstats/lines_of_code.plot @@ -0,0 +1,13 @@ +set terminal svg +set size 1.0,0.5 + +set output 'lines_of_code.svg' +unset key +set xdata time +set timefmt "%s" +set format x "%Y-%m-%d" +set grid y +set ylabel "Lines" +set xtics rotate by 90 +set bmargin 6 +plot 'lines_of_code.dat' using 1:2 w lines diff --git a/examples/gitstats/month_of_year.dat b/examples/gitstats/month_of_year.dat new file mode 100644 index 00000000..55894acc --- /dev/null +++ b/examples/gitstats/month_of_year.dat @@ -0,0 +1,12 @@ +1 7 +2 32 +3 25 +4 12 +5 0 +6 0 +7 0 +8 0 +9 0 +10 0 +11 0 +12 0 diff --git a/examples/gitstats/month_of_year.plot b/examples/gitstats/month_of_year.plot new file mode 100644 index 00000000..c2cf2949 --- /dev/null +++ b/examples/gitstats/month_of_year.plot @@ -0,0 +1,10 @@ +set terminal svg +set size 1.0,0.5 + +set output 'month_of_year.svg' +unset key +set xrange [0.5:12.5] +set xtics 1 +set grid y +set ylabel "Commits" +plot 'month_of_year.dat' using 1:2:(0.5) w boxes fs solid diff --git a/examples/gitstats/sortable.js b/examples/gitstats/sortable.js new file mode 100644 index 00000000..006a12f8 --- /dev/null +++ b/examples/gitstats/sortable.js @@ -0,0 +1,340 @@ +/* +Table sorting script by Joost de Valk, check it out at http://www.joostdevalk.nl/code/sortable-table/. +Based on a script from http://www.kryogenix.org/code/browser/sorttable/. +Distributed under the MIT license: http://www.kryogenix.org/code/browser/licence.html . + +Copyright (c) 1997-2007 Stuart Langridge, Joost de Valk. + +Version 1.5.7 + */ + +/* You can change these values */ +var image_path = ""; +var image_up = "arrow-up.gif"; +var image_down = "arrow-down.gif"; +var image_none = "arrow-none.gif"; +var europeandate = true; +var alternate_row_colors = true; + +/* Don't change anything below this unless you know what you're doing */ +addEvent(window, "load", sortables_init); + +var SORT_COLUMN_INDEX; +var thead = false; + +function sortables_init() { + // Find all tables with class sortable and make them sortable + if (! document.getElementsByTagName) return; + tbls = document.getElementsByTagName("table"); + for (ti = 0; ti < tbls.length; ti++) { + thisTbl = tbls[ti]; + if (((' ' + thisTbl.className + ' ').indexOf("sortable") != -1) && (thisTbl.id)) { + ts_makeSortable(thisTbl); + } + } +} + +function ts_makeSortable(t) { + if (t.rows && t.rows.length > 0) { + if (t.tHead && t.tHead.rows.length > 0) { + var firstRow = t.tHead.rows[t.tHead.rows.length -1]; + thead = true; + } else { + var firstRow = t.rows[0]; + } + } + if (! firstRow) return; + + // We have a first row: assume it's the header, and make its contents clickable links + for (var i = 0; i < firstRow.cells.length; i++) { + var cell = firstRow.cells[i]; + var txt = ts_getInnerText(cell); + if (cell.className != "unsortable" && cell.className.indexOf("unsortable") == -1) { + cell.innerHTML = '' + txt + '  ↓'; + } + } + if (alternate_row_colors) { + alternate(t); + } +} + +function ts_getInnerText(el) { + if (typeof el == "string") return el; + if (typeof el == "undefined") { + return el + }; + if (el.innerText) return el.innerText; + //Not needed but it is faster + var str = ""; + + var cs = el.childNodes; + var l = cs.length; + for (var i = 0; i < l; i++) { + switch (cs[i].nodeType) { + case 1: //ELEMENT_NODE + str += ts_getInnerText(cs[i]); + break; + case 3: //TEXT_NODE + str += cs[i].nodeValue; + break; + } + } + return str; +} + +function ts_resortTable(lnk, clid) { + var span; + for (var ci = 0; ci < lnk.childNodes.length; ci++) { + if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci]; + } + var spantext = ts_getInnerText(span); + var td = lnk.parentNode; + var column = clid || td.cellIndex; + var t = getParent(td, 'TABLE'); + // Work out a type for the column + if (t.rows.length <= 1) return; + var itm = ""; + var i = 1; + while (itm == "" && i < t.tBodies[0].rows.length) { + var itm = ts_getInnerText(t.tBodies[0].rows[i].cells[column]); + itm = trim(itm); + if (itm.substr(0, 4) == "