Git-Stats – A local GitHub-like contributions calendar
github.com
github.com
Here's my output from both tools, generated from the repo I spend most of my time in at work: http://i.imgur.com/chrmeP6.png.
[1] https://github.com/k4rthik/git-cal
[2] https://github.com/IonicaBizau/git-stats#importing-and-delet...
EDIT: Just noticed that the "contributions" counts differ.
peterjmag@peters-imac ~/checkouts/rg/community (git::master)
$ git rev-list HEAD --author="Peter" --since="1 year ago" --count
1205
But git-stats shows 1292. What does it count as a contribution?When I left my previous job, they revoked my Github access and I lost 3k commits on the calendar and it was a bummer. I wasn't throwing a fit or anything. I just had to start over :).
One of the tools I use now an then is gource:
https://code.google.com/p/gource
It puts you entire log on a neat graph like file structure with the contributors firing out changes to nodes as time goes by.
user@host ~/tmp # npm install -g git-stats
/usr/local/bin/git-stats -> /usr/local/lib/node_modules/git-stats/bin/git-stats
git-stats@1.1.0 /usr/local/lib/node_modules/git-stats ├── ul@1.1.0
├── ansi-parser@1.4.0 ├── cli-box@2.1.1 (ansi-parser@1.3.0)
├── moment@2.9.0 ├── git-stats-colors@1.0.0 (couleurs@3.0.0)
└── bug-killer@1.0.0 (couleurs@1.1.0) user@host ~/tmp # npm install -g git-stats-importer /usr/local/bin/git-stats-importer -> /usr/local/lib/node_modules/git-stats-importer/bin/git-stats-importer
git-stats-importer@1.3.0 /usr/local/lib/node_modules/git-stats-importer ├── gry@1.0.0
├── async@0.9.0 ├── oargv@1.2.0 (ul@1.1.0)
├── bug-killer@1.0.0 (couleurs@1.1.0) └── git-stats@1.1.0 (ul@1.1.0, ansi-parser@1.4.0, git-stats-colors@1.0.0, cli-box@2.1.1, moment@2.9.0)
user@host ~/tmp # git clone https://github.com/IonicaBizau/git-stats
Cloning into 'git-stats'... remote: Counting objects: 414, done.
remote: Total 414 (delta 0), reused 0 (delta 0) Receiving objects: 100% (414/414), 47.08 KiB | 0 bytes/s, done.
Resolving deltas: 100% (189/189), done. Checking connectivity... done.
user@host ~/tmp : cd git-stats
user@host ~/tmp/git-stats # git-stats-importer
info Done.
user@host ~/tmp/git-stats # git stats
╔════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║ Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb ║
║Sun ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ║
║Mon ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ║
║Tue ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ║
║Wed ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ║
║Thu ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ║
║Fri ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ║
║Sat ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ║
║-------------------------------------------------------------------------------------------------------------- ║
║Contributions in the last year: 0 | Longest Streak: 0 days | Current Streak: 0 days | Max a day: 0 ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
user@host ~/tmp/git-stats # cat $HOME/.git-stats
{}Edit: it will use the local user.email if that is set. It also will use the GIT_AUTHOR_EMAIL but only as a fallback if user.email is unset
Thanks for the info.
While I do push data to github for various projects, I actually take part in 3-4 active, self-hosted redmine projects that would never be counted in the github graph. Same for a seldom-updated bitbucket project.
If you have a compelling reason as to why this project would be better done in another language then it would be prudent to include this reason in your original post. If all you're going off is personal preference then it may be best to keep this to yourself.
My reservations about Node stem from this kind of app actually; the creation of a tool that goes far beyond the realistic and sensible use-case for Node.
That is, the huge benefit that Node offers is the ability to have both server- and client-side scripting in the same language; that's awesome. However, it's a fairly common bit of knowledge that JS is less than ideal for a wide variety of reasons (e.g., no integers, breaking the commutative property, etc.). While it may be a great alternative to PHP, it's still not that great of a language. So, to go beyond the notion of just using it to unify the language for webapps and to start creating userland applications on such a platform seems very counterproductive to me.
In this case, I am especially taken by the fact that this author has made three or four projects which all do similar things but for different use-cases. If this project were made into, for example, a C library, all of the derivative projects could just source that library and be simpler for it. Not to mention the fact that other projects could interface with it as well.
Despite C's reputation as being rather hard to make portable code, a public API with a C library actually makes it incredibly portable and extensible.
Again, I am completely okay with Node (I don't crusade against its existence), it just saddens me to see such cool projects be based on such a platform when there are obvious benefits to using something closer to the metal.
I need download stats, checkout stats, per page view stats and per file view stats.