5 ms·
Git quick statistics
- hwj 8y agoFor people wondering what that's written in: bash (394 LoC according to tokei).
- JNRowe 8y agoAnother alternative that I like is pepper¹. It doesn't have the interactive menu interface that the OP script has, but it can produce nice results² and does support other VCSs. As an added benefit you can just use pepper to generate the data and shift to your favourite tool for display. 1. https://jgehring.github.io/pepper/ https://jgehring.github.io/pepper/ 2. https://jgehring.github.io/pepper/gallery/ https://jgehring.github.io/pepper/gallery/
- xnxx 8y agohttps://www.facebook.com/profile.php?id=100028090005040 https://www.facebook.com/profile.php?id=100028090005040
- telotortium 8y ago> Extracting this information is not always trivial, mostly because of a gadzillion options to a gadzillion git commands – I don’t think there is a single person alive who knows them all. Probably not even Linus Torvalds himself :). Or Junio Hamano, for that matter (although there is a greater chance :)
- miguelmota 8y agoBonus points for not being a bloated Node.js NPM module; it's all one bash script
- qznc 8y agoThe more interesting question with git statistics is what they are actually useful for. Tools like this seem to be guided by which data is available and easy to extract. What is commits per hour useful for? Sometimes these metrics are useful. For example, the top committers are interesting, because it instantly gives you a good hint who is very experienced with the codebase and its structure. Two metrics I find useful to know where to refactor: Files with the most commits and with the most authors.
- paulddraper 8y agoCommits per hour is interesting to understand CI/CD requirements.
- sftwds 8y agoThe commits per hour statistic looks to be how many commits occurred in each hour of the day: https://github.com/arzzen/git-quick-stats/blob/master/git-quick-stats#L195 https://github.com/arzzen/git-quick-stats/blob/master/git-qu.... For CI/CD requirements you really want to measure the time difference between every commit and the previous commit. That way you can say that if your CI/CD processes take less than X amount of time, they will finish before the next commit Y% of the time.
- paulddraper 8y agoNot necessarily. At any reasonable size, you have to be able to run builds and tests for features in parallel. And at that point, throughput and scale throughout the day is rather important.
- jlg23 8y agoYou are right, IMHO, but you are also wrong: "commits by hour" and "top committers" are the same metric simply applied to time frames.
- rgrau 8y agoIn a new job/project, knowing the span of dates per author gives me an idea of the churn of the company, and how long are people staying there. I had a script to do it and when I discovered this project I contributed this feature
- stblack 8y agoIn the same vein, git-extras (https://github.com/tj/git-extras/blob/master/Commands.md https://github.com/tj/git-extras/blob/master/Commands.md) has many similar metrics within a wider git enhancement suite.
- Waterluvian 8y agoSo I installed and use `git open`. How do these applications get to work, prefaced by `git`? Wouldn't `git quick-stats` just invoke `git` with an invalid parameter?
- erik_seaberg 8y ago$ cat >~/bin/git-foo echo foo! $ chmod +x ~/bin/git-foo $ git foo foo! $ git help foo No manual entry for git-foo
- smarinov 8y agoWhen you installed it, `make` changed your global .gitconfig file and added the respective Git aliases to it, so that Git would know what to do and not complain about invalid commands. This happens on this line of the project's Makefile: https://github.com/arzzen/git-quick-stats/blob/master/Makefile#L21 https://github.com/arzzen/git-quick-stats/blob/master/Makefi...
- Waterluvian 8y agoAha. So this is possible because git is designed for these kinds of aliases. I wasn't sure if maybe it was core to Linux or something. Thank you.
- zimpenfish 8y agoAside from aliases in your `.gitconfig`, as far as I know, if `git-subcommand` exists in your path, `git subcommand` will call that script for you automatically. ie if you put `git-monkey` in `$HOME/bin`, add `$HOME/bin` to your path, now `git monkey` is a valid subcommand.