cover.jpg

ทำ Git visualize ตลอด 1 ปีที่ผ่านมาด้วย Gource

2 min read

ปกติช่วงสิ้นปีหรือช่วงปีใหม่เราก็มักจะทำ Year review กันใช่ไหมละ ผมเองก็มีทำๆ บ้างจะได้เป็นการทบทวนตัวเองว่าตลอด 1 ปีที่ผ่านมาได้ทำอะไรไปบ้าง ซึ่งตัวผมนั้นอยากเห็นด้วยว่าโปรเจคที่ทำมาตลอด 1 ปีได้ทำอะไรไปเยอะแค่ไหนและมีการเติบโตจากเดิมไปเท่าไร แต่มานั่งนึกเอาเองมันก็ดูจะไม่ค่อยเห็นภาพเท่าไร เลยนึกขึ้นได้ว่าใช้ Gource ทำ visualization ให้ดีกว่าจะได้เห็นเป็นภาพเลย แถมเอาไปโชว์ให้ทีมดูได้ด้วย

Gource เป็นโปรแกรมที่จะอ่านประวัติจาก SVC Repo (เช่น Git, Mercurial, SVN เป็นต้น) แล้วเอามาวาดเป็นต้นไม้แสดงให้ดูตามโฟลเดอร์และไฟล์ในโปรเจค นอกจากนี้ยังเล่นเป็นไทมไลน์ให้ดูว่าช่วงนั้นมีอะไรเกิดขึ้นบ้างและใครทำอะไรตรงไหนไป

ติดตั้ง

วิธีติดตั้ง gource นั้นง่ายมากๆ เราสามารถลงผ่าน package manager ด้วย command line เพียงบรรทัดเดียวได้เลยทั้ง macOS และ Linux รวมถึง Windows 11 หรือ Windows 10 ที่ลง winget ไว้แล้ว ก็สามารถใช้ command ติดตั้งตามด้านล่างได้เลย

Winget (Windows 11 / Windows 10)

1
winget install gource

Homebrew (macOS)

1
brew install gource

Debian / Ubuntu

1
sudo apt install gource

Arch linux

1
pacman -S gource

ถ้าใครไม่อยากลงผ่าน command line ก็สามารถโหลดตัวติดตั้งจากเว็บไซต์หลักได้เลย gource.io

วิธีใช้งาน

ในส่วนวิธีใช้งานก็ง่ายๆ ไม่มีอะไรซับซ้อนเลย เริ่มจากไปที่โฟลเดอร์โปรเจคของเราก่อน

1
cd ~/myporject

จากนั้นรัน gource

1
gource

ตู้มม!! ก็จะมีหน้าต่างเด้งขึ้นมาให้เราดู

แต่ว่ามันเอามาทั้งหมดเลยตั้งแต่ตอนสร้าง repo มาจนถึงช่วงปัจจุบันเลย ซึ่งผมอยากได้แค่ช่วงของ 1 ปีที่แล้วเท่านั้น เลยต้องกำหนดช่วงเวลาให้มัน

1
gource --start-date "2021-01-01" --stop-date "2021-12-31"

โดยที่

  • ---start-date "YYYY-MM-DD" กำหนดวันเริ่มต้น ในที่นี้คือ วันที่ 1 มกราคม ค.ศ. 2021
  • --stop-date "YYYY-MM-DD" กำหนดวันสุดท้าย ในที่นี้คือ วันที่ 31 ธันวาคม ค.ศ. 2021

เท่านี้ gource จะไล่ไทมไลน์ให้เราแค่ในช่วงที่เรากำหนดไว้แล้วละ

แต่ว่าถ้าช่วงไหนไม่ได้มี commit เลย gource ก็จะข้ามช่วงนั้นไปให้อัตโนมัติ ถ้าใครไม่อยากให้ข้ามสามารถปิดด้วย flag --disable-auto-skip

1
gource --disable-auto-skip

แล้วถ้ารู้สึกว่ามันช้าไปเราสามารถปรับความเร็วได้ด้วย --time-scale <scale> ซึ่งปรับได้ตั้งแต่ 1.0 - 4.0 (ค่าเริ่มต้นอยู่ที่ 1.0)

1
gource --time-scale 4

หน้าจอเล็กไปก็ปรับได้ด้วย -<WIDTH>x<HIEGHT>

1
gource -1920x1080

หรือจะปรับเต็มจอไปเลยก็ใส่ --fullscreen

1
gource --fullscreen

จริงๆ ยังมี option ให้ปรับได้อีกเยอะ แนะนำให้ลองอ่านเพิ่มในวิกิ

สำหรับหนึ่งปีใช้แค่นี้ก็พอแล้ว ที่เหลือก็แค่อัดหน้าจอเราก็จะได้ visualize ตลอด 1 ปีที่ผ่านมาแล้ว

1
gource --start-date "2021-01-01" --stop-date "2021-12-31" --time-scale 4

(อันนี้เป็นวิดีโอประกอบเฉยๆ นะ ผมเอาของจริงมาโชว์ให้ดูไม่ได้)

FFmpeg

ใครที่มี ffmpeg อยู่แล้ว เราสามารถเอามาใช้เรนเดอร์วิดีโอออกมาเป็นไฟล์ให้เราได้เลยจะได้ไม่ต้องมาอัดหน้าจอเอง

1
gource --start-date "2021-01-01" --stop-date "2021-12-31" --time-scale 4 -1980x1080 | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 gource.mp4

อ่านรายละเอียดเพิ่มเติม

Share
Twitter Tweet
อัพเดท Git ให้เป็นเวอร์ชันล่าสุดบน Ubuntu และ WSL

อัพเดท Git ให้เป็นเวอร์ชันล่าสุดบน Ubuntu และ WSL

• 1 min

ค้นหา Winget package ผ่านเว็บง่ายๆ ด้วย Winget.run

ค้นหา Winget package ผ่านเว็บง่ายๆ ด้วย Winget.run

• 1 min

Winget คืออะไร? พร้อมวิธีติดตั้งและใช้งาน

Winget คืออะไร? พร้อมวิธีติดตั้งและใช้งาน

• 3 min