2013-06-28 2 views
3

svn에서 파일을 수정하는 빈도를 보여주는 무언가를 찾고 있습니다. 나는 자주 그리고 자주 바뀌는 파일을보고 싶다. 또한 "보고서"는 프로젝트별로 변경 빈도를 볼 수 있도록 디렉토리별로 그룹화해야합니다.svn - 파일이나 디렉토리 당 커밋 빈도

어떤 도구가 이러한 기능을 제공합니까?

(즉, 중요한 경우 - 나는 또한 받는다는 및 언어주의 대부분 자바 사용하고 있습니다)

+0

이전에 질문했거나 대답 한 것으로 믿습니다. http://stackoverflow.com/questions/402964/tool-to-generate-change-reports-from-subversion-logs – BillH

답변

1

SVN 내부 보고서를 생성하는 명령이 있지만, 나는 골드 피처에서 어안 도구를 사용하려고 조언을 것입니다. 유료 도구이지만 특정 사용자가 커밋 한 파일 수, 커밋 된 파일 수 및 그래픽 형식의 보고서를 제공합니다.

2

Subversion에는이 작업을 수행 할 수있는 표준 도구가 없습니다. 그러나 가능한 한 가지 방법이 있지만 시간이 걸릴 수 있습니다.

먼저 저장소의 모든 파일 목록을 생성해야합니다. 이 그것을 수행해야합니다

$ svn ls -R $REPO 

그런 다음 당신이 입력으로 그것을 사용하고 어떻게 든 각 파일에서 보고서를 생성 할 수 :

$ svn ls -R $REPO | while read $file 
do 
    here be dragons 
done 
우리는 파일 (현재 BASH 및 콘 셸 특정)을 제거 할 필요가

:

$ svn ls -R $REPO | while read $file 
do 
    [[ $file == */ ]] && continue 
    here be dragons 
done 

그런 다음 모든 변경 사항을 계산하는 방법을 알아야합니다. svn log해야합니다.

  • 난 당신이 거라고 믿고있어이와 몇 가지 문제가 있습니다

    $ svn ls -R $REPO | while read $file 
    do 
        [[ $file == */ ]] && continue 
        count=$(svn log $REPO/$file | grep "^--*$" | wc -l) 
        echo "$REPO/$file: $count" 
    done 
    

    : 우리가 대시하지만 아무것도로 구성되어 모든 행을 계산하는 경우, 그것은 우리에게 수를 제공해야 저장소의 루트에서. 그렇지 않은 경우 디렉토리 항목을 고려해야 할 수 있습니다.

  • 이름에 이상한 공백이있는 파일의 문제점이 있습니다. 파일에 공백이 없거나 (소스 파일이 없다고 가정 할 때) 파일에 공백이없고 이름의 앞이나 뒤에 공백이없는 경우이 방법이 유용합니다. 그러나 이중 공백, 탭 등은 문제가 될 수 있습니다.
  • 이것은 느릴 것입니다. 실제 보고서가 없으며 파일 목록과 카운트 만 있습니다.
  • 삭제 된 파일은 처리하지 않습니다. 파일이 저장소에서 삭제 된 경우이 프로그램에 나열되지 않습니다.
  • 이 프로그램은 개가 천천히 진행됩니다. 내 테스트에서는 각 파일마다 약 1 초가 걸립니다. 시작, 점심 식사, 커피 한잔. 어쩌면 애틀랜틱 시티로 내려 가서 약간의 손을 대지 마세요. 당신이 돌아올 때까지해야합니다.

시작일입니다. svn log에있는 -r 매개 변수를 통해 날짜 범위를 제한 할 수 있습니다. 이러한 개정판의 대부분이 2 년 전의 것이라면 파일에 많은 개정판이 있었는지 신경 쓸 필요가 없습니다. 그리고 이것은 아마도 쉘 스크립트의 한계 일 것입니다. 로직을 파이썬이나 펄로 이식 할 수 있으며 더 많은 일을 할 수 있습니다.

0

"$ file"을 읽는 동안 "$ file"이 (가) 인 줄에 $가 없어야합니다 (예 : "read file"). 그렇지 않으면 잘 작동합니다!