Optimization: only run "git-rev-list HEAD" once.
[gitstats.git] / TODO.txt
blob339c351846a48a2f8ceb2e199ebb309f8bc75ad4
1 - development statistics generator for git
2         - should be as versatile as statcvs / statsvn
4 [Information]
5 - git-log
6 - git-ls-files
7         - Current list of files
8 - git-log --stat or --shortstat - N files changed, N insertions, N deletions
9 - git-log --name-status - svn-like list of modifications for each commit
10 - git-rev-list --all
11         - first and last commit
12 - git-show-ref --tags
13         - not all tags are tags on refs?
14 - git-log |git-shortlog -s
15         - author: number of commits
16 - git-what-changed
17 - XXX git-log --pretty=oneline |wc -l != git-rev-list --all |wc -l
18         - git-rev-list HEAD == git-log --pretty=oneline
20 [Stats]
21 - General
22         - Report Period (git-log)
23         - DONE Total Files (git-ls-files)
24         - WIP Total LOC?
25         - DONE Total Commits
26         - DONE Authors
28 - Authors
29         - List of authors
30                 - show only first 10 and rest on separate page?
31         - DONE (T): author, commits (%), LOC?, first commit, last commit
32         - DONE (T): Developer of the Month: month, author, commits, LOC?
33         - DONE (T): Author of Year
35 - Files
36         - Total Files
37         - Average file size
38         - Average revisions per file
39         - (G) File Count: x = date, y = files
40         - (G) Average file size: x = date, y = lines/file
41         - (T) File Extensions (or mime types from "file"?): extension, files (%), lines (%), lines/file
42         - (T) Largest Files?
43         - (T) Files With Most Revisions?
45 - Activity by Time?
46         - DONE Hour of Day
47         - DONE Day of Week
48                 - Hour of weekday -> 7x25?
49         - Month of Year
50         - (G?) Last 30 days
51         - (G?) Last 12 months
53 - (G) Lines of Code: x = date, y = lines
55 - Tags
56         - (T): Name, Date, LOC?, Developers
58 - Author page for each author
59         - Name, mail
60         - Total commits (%)
61         - LOC (%)
62         - Last commit: date
63         - First commit: date
64         - Activity by Clock Time
65                 - (G) Hour of Day
66                 - (G) Day of Week
67         - (T) Activity in Directories: Directory, Changes, LOC, LOC/change
68         - (Most Recent Commits?)
70 [Stats in StatSVN]
71 - General
72         - Report Period (first/last date of commits)
73         - Total files?
74         - Total LOC?
75         - Developers
77 - Main stats
78         - Lines of Code: x = date, y = lines, releases/tags as vertical lines
79         - Table: Top 10 Authors: author, LOC (%)
80         - Table: Repository tags: name, date, lines, LOC Churn, Developers
81         - Tree: Directories: dir (N files, N lines)
83 - Developers
84         - Number of developers
85         - Table: author, changes (%), LOC (%), LOC/change
86         - Graph: Lines of Code: x = date, y = lines, colored lines for each author
87         - Table: Developer of the Month: month, author, lines
88         - Graph: Developer Activity
89         - Graph: Author Activity (bar for each author, showing modifying/adding percentages) (could be table)
90         - Graphs: Activity by Clock Time
91                 - Hour of Day
92                 - Day of Week
94 - Commit logs
95 - Lines of Code (same as main graph)
97 - File Statistics
98         - Graph: File Sizes and File Counts: x = date, y = files
99         - Graph: Average File Size (x = date, y = LOC/file)
100         - Table: File Types
101         - Table: Largest Files
102         - Table: Files With Most Revisions
104 - Directory sizes
105 - "Repo heatmap"?
106 - LOC and Churn
108 [Graphics]
109 - Use gnuplot, graphviz etc ?
111 [Usage]
112 - $ statgit [-o html] /path/to/git /output/dir
114 [name]
115 - statgit or gitstats (no google hits for either)
117 [Misc]
118 - use sortable.js ?
119 - could show some statistics from last year, month, etc... pisg-like?
120 - style: tabs at top for different pages