문제

개정 제어 시스템을 사용하는 프로젝트에 얼마나 많은 개발자가 참여했는지 어떻게 알 수 있나요?내 친구가 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 플러그인이 있습니다.

https://launchpad.net/bzr-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 위의 명령에 적절하게.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top