اگر با git کار می کنید، گاهی می خواهید آماری از Repository و مشارکت افراد مختلف در آن داشته باشید. Github این کار را به بهترین شکل ممکن انجام می دهد. اما در مورد Repository های خصوصی که روی Github قرار ندارد باید چه کار کنیم؟
موضوع وقتی جدیتر می شود که قرار باشد آخر هر هفته آماری از وضعیت توسعه پروژه برای افراد تیم ارسال کنید و نمی خواهیم وقت زیادی را صرف سر و کله زدن با ابزارهای عریض و طویل مربوط به مدیریت پروژه های نرم افزاری کنید (درباره این موضوع -گزارش های آخر هفته ای- در پست دیگری مفصل صحبت خواهم کرد ).
در ادامه با تعدادی از ابزارهای مفید برای استخراج آمارهای جالب مربوط به پروژه های نرم افزاری آشنا می شویم. این ابزارها نه قویترین هستند، نه قدیمیترین و نه بهترین. فقط ابزارهایی هستند که وقتی در جست وجو ابزارهای کوچک و ساده برای استخراج آمار بودم با آنها بر خورد داشتم و از آنها استفاده می کنم.
GitInspector
Gitinspector نام یک ابزار مفید است برای تولید این گونه آمار است که با python نوشته شده است و به راحتی قابل استفاده است. این ابزار خروجی HTML ، XML ، TXT ، XML تولید می کند و میزان جزییات خروجی بوسیله پارامترهای خط فرمان قابل تنظیم است.
کد این ابزار را می توانید از این مسیر دریافت کنید:
برای اجرا هم کافی است از الگوی دستوری زیر استفاده کنید:python [gitinspector dir path]\gitinspector.py [git repo. path] > git.html
مثلا برای اجرا روی یک repository نمونه در سیستم عامل ویندوز می توانید از دستور زیر استفاده کنید:
python.exe D:\gitinspector-0.3.1\gitinspector\gitinspector.py --grading --format=html D:\projects\testapp > git.html
برای آشنایی بیشتر با پارامترهای ورودی هم می توانید به مستندات آن نگاهی بیندازید:
Git-Score
یکی دیگر از ابزارها git-score است. git-score هم با python نوشته شده است و ولی خروجی آن تنها در ترمینال نمایش داده می شود. اطلاعات خروجی این ابزار مختصرتر است.
برای استفاده از آن هم کافی است به دایرکتوری Repository بروید و git-score را اجرا کنید:
CLOC
CLOC ابزاری است که با Perl نوشته شده است و کارش تشخیص انواع زبان ها برنامه نویسی استفاده شده در پروژه بر اساس نوع فایل ها و شمارش تعداد خطوط کامنت، خالی و کد است. یک نمونه از خروجی این ابزار به شکل زیر است:
python git-score.py
CLOC
CLOC ابزاری است که با Perl نوشته شده است و کارش تشخیص انواع زبان ها برنامه نویسی استفاده شده در پروژه بر اساس نوع فایل ها و شمارش تعداد خطوط کامنت، خالی و کد است. یک نمونه از خروجی این ابزار به شکل زیر است:
31 text files. classified 31 files 31 unique files. 8 files ignored. http://cloc.sourceforge.net v 1.60 T=0.20 s (117.7 files/s, 9643.4 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- Objective C 12 416 178 1033 C/C++ Header 11 49 71 138 ------------------------------------------------------------------------------- SUM: 23 465 249 1171 -------------------------------------------------------------------------------
برای استفاده از این ابزار می توانید پس از دریافت سورس کد آن از آدرس http://cloc.sourceforge.net، از دستوری شبیه این استفاده کنید:
perl cloc-1.60.pl [Project Directory]
SrcStatJS
پس از اینکه حدود سه هفته از این ابزارها برای استخراج آماری مختصر از Repository های پروژه ها استفاده کردم، تصمیم گرفتن ابزاری کوچک بنویسم که بخش از کارها را خودکار انجام دهد. حاصل این تلاش پروژه SrcStatJS است که روی گیت هاب قابل دسترسی است.
این ابزار با کمک CLOC و git-score اطلاعاتی شامل مجموع تعداد خطوط هر پروژه و مشارکت هر فرد در هر Repository را چاپ می کند. سورس کد به زبان Nodejs است و از کدهای CLOC و git-score برای بخش اصلی کار استفاده می کنم.
امیدوارم وقت کافی پیدا کنم تا این پروژه را کاملتر کنم و آخر این هفته برای تولید گزارش از این ابزار استفاده کنم.