한 프로젝트에 몇 명이 참여했나요?개정 관리 시스템 기반
문제
개정 제어 시스템을 사용하는 프로젝트에 얼마나 많은 개발자가 참여했는지 어떻게 알 수 있나요?내 친구가 git log에서 답을 찾기 위해 이 방법을 찾았습니다.
git log | grep Author: | sort -u | cut –delimiter=” ” -f2 | sort -u | wc -l
git에 간단한 방법이 있나요?Subversion, Bazaar 또는 Mercurial과 같은 다른 개정 제어 시스템은 어떻습니까?
해결책
git
그만큼 shortlog
명령은 매우 유용합니다. 이것은 전형적인 것을 요약합니다 git-log
산출.
$ git shortlog -sn
119 tsaleh
113 Joe Ferris
70 Ryan McGeary
45 Tammer Saleh
45 Dan Croak
19 Matt Jankowski
...
전달 wc
고유 한 사용자 이름의 수를 보려면 :
$ git shortlog -sn | wc -l
40
다른 팁
Mercurial의 경우 정확히 다음과 같은 확장이 있습니다. hg churn
.
hg churn
줄 변경에 따라 정렬, 변경 사항 수를 원한다면 사용하십시오. hg churn -c
.
전복을 위해
svn log -q svn://path/to/repo | cut -f 3 -d " " | sort -u
프로젝트 기고자에 대한 다른 정보를 얻을 수있는 Bazaar에 대한 Stats 플러그인이 있습니다.
나는 Mercurial을위한 간단한 방법을 알지 못하고 모든 문서를 잘 찾는 것도 아무것도 밝히지 않았습니다. 그래서 여기에 친구가 찾은 것과 비슷한 *nix 명령이 있습니다.
hg log | grep user: | cut -c 14- | sort -u | uniq | wc -l
btw, 나는 Git의 명령에 오류가 있다고 생각합니다. sort -u
반드시 UNIQ로 대체해야합니다!
더 간단한 git 버전은 다음과 같습니다.
git log --pretty=tformat:%an | sort -u | wc -l
또는 고유 한 이메일 주소에 관심이있는 경우 :
git log --pretty=tformat:%ae | sort -u | wc -l
Mercurial에는 강력한 템플릿 언어가 내장되어 있습니다(참조: hg help templates
).따라서 이탈 확장을 활성화하지 않고도 프로젝트에 있는 모든 사람의 목록을 얻을 수 있습니다.
hg log --template '{author}\n' | sort -u
사람들이 이메일 주소를 변경했지만 이름은 그대로 유지한 경우 다음을 처리할 수 있습니다. author
템플릿 키워드:
hg log --template '{author|person}\n' | sort -u
그런 다음 추가 wc -l
위의 명령에 적절하게.