2012-04-20 2 views
7

Git 저장소를 가져 와서 스크립트를 실행하고 코드 기반의 줄 수와 기여한 각 작성자의 비율을 생성 할 수 있다면 깔끔할 것이라고 생각했습니다. 그것에.작성자 별 현재 코드 배포 확인

기본적으로 나는 경쟁적인 코더이기 때문에 필자가 작성한 줄 수 (현재 머리글에 있음)가 내 파트너보다 큰지 확인하기 위해 개인 메트릭을 원합니다. "나는 현재 코드베이스의 %를 썼다"고 말하는 것은 재미있는 통계 일 것입니다.

아무도 이것을 생각하지 않았습니까? 나는 방법을 찾았지만 쉘 스크립팅은 최선이 아니므로 혼자 할 수는 없습니다.

+5

"코드 줄로 프로그래밍 진행 상황을 측정하는 것은 중량으로 항공기 구축 진행 상황을 측정하는 것과 같습니다." – Etaoin

+0

@에요 : 나는 +1000을 더하고자한다. :-) – torek

답변

1

git-blame의 출력을 구문 분석 할 수 있습니다. 이 명령은 파일의 각 행을 편집 한 마지막 사람을 제공합니다.

이 예제는 원하지 정확히하지만 난 당신에게 아이디어를 제공합니다 생각 : 이것은 그들이에 대해 마지막으로 수정 된 행의 수와 함께 저자의 전자 메일 주소를 인쇄합니다

git blame -e the/file | awk -F '<|>' '{print $2}' | sort | uniq -c 

을 예를 들어, 파일 :

 47 [email protected] 
    34712 [email protected] 

가 전체 저장소에서 실행하려면, 당신은 같은 것을 할 수 있습니다

git ls-files | while read f; do git blame -e $f; done | awk -F '<|>' '{print $2}' | sort | uniq -c 

여기에있는 아이디어는 먼저 git ls-files를 사용하여 파일 목록을 생성 한 다음 각 파일에 위의 코드 조각을 실행하는 것입니다 (here 언급 된 스 니펫 사용). 이 코드를 큰 코드베이스에서 실행하는 경우 중간 결과를 파이프를 사용하지 않고 임시 파일에 저장할 수 있습니다.

1

아마도 gitdm이 필요합니다. 원하는대로 정확하게 수행 할 수 있습니다. Mahara 프로젝트에 사용하여 contribution statistics을 생성합니다.

git log -p -M v2.6.19..v2.6.20 | gitdm -u -s -a -o results -h results.html 

또한 사용자 정의 할 수 있습니다

"의 2.6.x를 쓰는 사람의"LWN에게 기사를 생성하는 데 사용되는 일반적인 명령 줄은 다음과 같습니다

그냥 어떤 README 것은 제안 할 그것은 당신의 목적을 위해서입니다.