ඔබගේ Git repository එකේ prepare-commit-msg hook එකට timeout සකස් කරලා, අනික්ෂණයක් අහෝසි කරලා කියලා හිතනවාද? තවත් අයෙකු මේ සතියේ එහෙමත් කරලා, නමුත් ඒ hook එක කිසිදාත් ක්රියා නොකළ බව හෙට දවසේ හෙළිවී තිබුණා.
මූලික ගැටලුව මෙහෙමයි: ගිට් හුක් එකක් .git/hooks/ ෆෝල්ඩරයේ හෝ core.hooksPath මගින් සකස් කරලා තිබුණත්, එම සැකසුම රිපො එකේ අඩංගු hooks/ ෆෝල්ඩරයෙහි පමණක් තිබුණා. ගිට් සොයාගන්නේ .git/hooks/ (ලොකල්) හෝ core.hooksPath දී දක්වා ඇති මාර්ගයයි. ඒ නිසා රිපො එකේ hooks/prepare-commit-msg ගොනුව, ගිට්ටා අමතක කරපු README එකේ විස්තරයක් පමණයි; එය .git/hooks/prepare-commit-msg වෙත පිටපත් නොකළ හෝ core.hooksPath සකස් නොකළ නම්, කිසිදු commit එකකදී එය භාවිතා නොවේ.
මෙම අවස්ථාවේ, ලේඛකයා claude -p කමන්ඩ් එකට timeout එකක් (20 seconds) එක් කරලා, ගිට් commit එක අසීරු නොවෙන්න වග බලා ගත්තේය. නමුත්, ඒ hook එක මුල සිටම ක්රියා නොකළ නිසා, අලුත් timeout සැකසුම පරීක්ෂා කළේ නැතිව පමණක් පරීක්ෂා කළා.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ බොහෝ සංවර්ධකයන් Git hooks භාවිතා කරමින් වැඩ කරති. මේ කතාවෙන් අපිට ඉගෙන ගත හැක්කේ:
- හූක් සැකසුම සත්යයෙන් පරීක්ෂා කරන්න – Hook එකක් සකස් කළ පසු, එය
.git/hooks/වෙත පිටපත් කරලා හෝcore.hooksPathසකස් කරලා සත්යයෙන් ක්රියා කරනවාද කියලා බලන්න. - README හෝ ලේඛන වලට විශ්වාස නොකරන්න – ලේඛනයේ විස්තරය හොඳයි, නමුත් එය ක්රියාත්මක වීමේ පියවර අමතක නොකරන්න.
- CI/CD පරිසරයන්හි සත්ය පරීක්ෂා – නව ලැප්ටොප්, CI රන්නරුව හෝ Docker container එකක් තුළත් hook සකස් කරලා පරීක්ෂා කිරීම, අනාගත ගැටළු වැළැක්වීමට උදව් කරයි.
ඉතාම සරල පියවරයක් මගින්, ඔබේ සංවර්ධන කණ්ඩායමට ගිට් commit කාලය අඩු කර, අයුතු හෝංග් වීමෙන් බේරීමට හැකියාව ලැබේ. එසේම, සිංහල තාක්ෂණික ප්රජාවට Git hooks ගැන අවබෝධය වැඩි කර, වැඩි නිර්මාණශීලීත්වයක් ලබා දීමට මෙය උපකාරී වේ.
අවසන් වශයෙන්, hook එකේ ලොජික් නිවැරදි වුවත්, එය ක්රියාත්මක නොවීමේ ගැටළුව තේරුම් ගැනීම, සංවර්ධකයින්ට “කොඩ් පරීක්ෂා කිරීම” හා “පරිසර සැකසීම” අතර වෙනස හඳුනා ගැනීමට ඉගැන්වීමකි.