Git log로 출력된 것을 Google Spreadsheet에 가져와 그래프화

할 일



Git 문서 을 읽고 있고 git log 는 원하는 형식으로 출력할 수 있는 옵션( --pretty )이 있다는 것을 깨달았으므로 그것을 이용하여 CSV로 출력해 보았습니다.

일단 CSV로 해 버리면, python이나 R등 여러가지 응용이 효과가 있다고 생각합니다.

이번에는 Google Spreadsheet의 그래프 기능을 사용하여 일별 커밋 수를 그래프로 만들었습니다.

git log



리포지토리를 준비합니다.

이번에는 Vue.js의 리포지토리를 소재로 사용했습니다.
$ git clone https://github.com/vuejs/vue.git
cd 명령으로 리포지토리에 들어갑니다.
$ cd vue

우선 표제행을 준비하고 싶습니다.

서식으로는 이런 느낌입니다.
$ echo '"見出し1","見出し2"' > "ファイル名.csv"

이번에는 날짜, 메시지, 커밋 한 사람, 해시를 출력 할 예정이므로,
$ echo '"date","massage","committer","hash"' > "gitlog.csv"

그리고 치십시오.

이어서 메인 접시의 git log 입니다.

다음과 같은 느낌에 명령합니다.
$ git log --pretty=format:'"%cd","%s","%cn","%H"' --date=format:'%Y/%m/%d %H:%M:%S' --branches  --remotes >> "gitlog.csv"
--pretty=format: 로 형식을 지정합니다.

형식은 Git - 커밋 내역 보기을 참조하십시오.
--date=format: 는 날짜 형식을 지정합니다.

이쪽은 어쩐지 알 수 있다고 생각합니다(나게야리).
--branches--remotes 는 덤으로, 브랜치에 관계없이, 리모트 리포지터리를 포함해 출력하게 되어 있을 것입니다.

그것들을 >> "gitlog.csv" 의 부분에서 얼마 안되는 제목만의 파일에 추기하고 있습니다.

출력된 것이 이하.



그렇게 나오고 있다고 생각합니다.

그건 그렇고, 5882 라인이있었습니다 (2019/10/30 현재). 대단한 ...!

Spreadsheet으로 가져오기


sheet.new 로 이동하여 새 스프레드시트를 만듭니다.
ファイル -> インポート 에서 gitlog.csv 를 업로드할 수 있습니다.

옵션은 초기 설정으로 좋을 것입니다.

그러면 이런 느낌이 듭니다.



이것을 그래프로 하고 싶습니다만, 그 때에 Date에 Time이 포함되어 있기 때문에(Datetime이나 없는가),

Time까지 보면 너무 세밀하기 때문에,

거기를 어떻게든 하려고 합니다.

변명하면 로그 자체는 가능한 한 세세하게 취해, 나중에 데이터를 가공하는 편이 좋다고 생각했어요.

에서 1Edatetext 라는 제목을 입력합니다.

그런 다음 2E
=text(A2,"YYYY-mm-dd")

이런 식의 식을 넣습니다.

그리고 에이어와 더블클릭하면…



이런 느낌으로 괜찮은 연월일 부분을 꺼낼 수 있었습니다.

그런 다음 E 열을 선택하고 挿入 -> グラフ


그래프가 생겼습니다! Date가 진행되는 방향이 오른쪽으로 갈수록 옛날이 되고 있습니다.

먼저 행 1을 고정 ( 表示 -> 固定 에서) 한 후 データ -> 列Eを基準にA-Zでシートを並べ替え 를 해 봅니다.



잘 잡히지 않은 줄 (아마 쉼표라든지가 들어 버린 것인지)가 있었기 때문에 삭제합니다.

덧붙여서 선두 뿐만이 아니라, 중간쪽에도 2건 있었습니다.

그리고 하루만 묘하게 커밋수가 많은 날이 있었으므로, 그래프의 설정 쪽으로부터 50으로 리밋트를 걸립니다.



이것으로 완성!



이렇게 보면 돌출하고 있던 2015년의 9월에 가세해 16,17,18년에도 1회씩 정도 피크의 날이 있었던 것 같습니다.

그러나 10 커밋에 이르는 날이 비교적 있는 것은 존경합니다.

요약



git log의 포맷 기능을 사용하여 CSV를 출력해 보았습니다.

잘하면 CircleCI 등으로 자동화도 할 수 있을 것 같은 느낌이 들지 않아도 네요.

가만히 하고 싶다…

좋은 웹페이지 즐겨찾기