In the developers’ sprint at PyCon US, I was sitting in the MicroPython room. After the second half, many of the developers left the room. The room turned into a Tundra region (I came from a place where the temperature was 40C). The only option left was to get into the CPython room. It seems a huge(if not most) of the people are or aspires to be a core developer. I was unwilling to get inside. I was shy, “how can a novice sit with the best and work on something beginner?” But the basic “intent to live” wins and to save myself from being ice-fied I sat in there. It was a muggle sitting with wizards. I just wanted to check my ‘audacity’, so I came with the idea a project -- gitcen. But never managed to work on it until a few days ago.
Introducing gitcen
gitcen - censusing a git repository. This is a command line application. If you provide a git repository it can tell the number of commits made in
- each day of the week,
- each hour of a day,
- by each author of the commits.
How to install and use it:
You can install gitcen using pip.
$ pip install gitcen
One will get these information on passing different flags such as --author,
--all etc.
Use the --path flag to point to a git directory:
$ gitcen --path ~/code/cpython
By default it prints the commits made on days and hours of a day.
If we want to get the details of the authors commit we have to provide the author, flag:
$ gitcen --author --path ~/code/cpython
For getting all the information, time, day and author, then we have to pass the all flag:
$ gitcen --all --path ~/code/cpython
I know you can easily find out these information using git but I wanted to write my application. It gave me some interesting facts when I ran gitcen on cpython:
- Sunday has 12484 commits
- Monday has 13779 commits
- Tuesday has 15499 commits
- Wednesday has 15112 commits
- Thursday has 13718 commits
- Friday has 15312 commits
- Saturday has 13642 commits.
Tuesday is the most productive and Sunday is least (thank God these people actually take a day off. Now actually I can use this data and tell Mr.(lazy) Das to take us out over weekends and stop giving,"I have work. All my friends work more over the weekends." excuse:)).
The first issue I had to tackle was how to write a command line application. I googled for it. The blog post which popped up, was written by someone familiar. I decided to trust that and started working accordingly. I installed Click and went through the whole tutorial according to the blogpost. The next module I spent my time with was datetime module. To get the statistics from git I used pygit2. It is the Python binding to libgit2 shared library.
This is the first time I uploaded a project in PyPI. I will be updating the code, adding new features to it in the new releases. This is not a perfect code, nor something very innovative. But as they say release early release often. So here is the gitcen 0.1.0. It has offered me a chance to learn, have fun, make mistakes and grow.