関連記事
GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ
概要
以下、自分用のメモです。忘れてしまいそうなので、ついでにここにメモメモ。。。
結構前の記事なんですが、Gigazineさんに以下のポストがあります。
内容としては、タイトル通りの話になっているものなのですが 記事内で、gitコマンドからユーザのコミット履歴を取得して 各時間帯ごとに集計してグラフ表示するということをやっています。
実際は、Gigazineさんが参照している以下の元記事でやり方とソースが 公開されています。
- At what time of day do famous programmers work?
- At what time of day do famous programmers work? Part 2. Workweek vs Weekend.
- Script to generate data shown in post 'At what time of day does famous programmers work? Part 2. Workweek vs Weekend.
上の記事で実装されているのはperlスクリプトでした。
んで、面白そうだったのでGoに移植してみました。
実行すると以下のような感じで出力されます。
$ gcw -user Gitユーザ名 -dir リポジトリのパス(デフォルトはカレントディレクトリ) -tz ローカルタイムゾーン(デフォルトはAsia/Tokyo) hour Monday to Friday Saturday and Sunday 00 56 ****** 4 01 25 ** 8 02 17 * 9 * 03 11 * 7 04 2 4 05 0 0 06 1 0 07 0 0 08 31 *** 0 09 46 ***** 0 10 80 ********* 0 11 214 ************************ 3 12 81 ********* 0 13 170 ******************* 4 14 183 ********************* 9 * 15 185 ********************* 8 16 210 ************************ 11 * 17 215 ************************* 22 ** 18 115 ************* 19 ** 19 58 ****** 24 ** 20 46 ***** 13 * 21 19 ** 15 * 22 17 * 18 ** 23 36 **** 24 ** Total: 1818 (90.0%) 202 (10.0%)
元のスクリプトは
$ git log --author="$GIT_USER_NAME" --format="%H %ai" | perl script.pl
とパイプ経由で入力を受け取り処理するようになっていましたが、Windows環境でも実行しやすいように 処理内で git コマンドも実行するように変更しています。
素晴らしいアイデアを教えてくれた元記事に感謝します。
参考情報
Goのおすすめ書籍
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。