2015-01-13 3 views
0

Doxygen을 사용하여 Android 프로젝트에 대한 문서를 생성하려하고 FILE_VERSION_FILTER 태그를 사용하여 모든 파일의 숫자 버전을 자동으로 가져 오려고합니다.Git에서 하나의 파일 버전 가져 오기

나는 힘내는 커밋의 id로 해시를 사용하지만, 별도의 파일의 숫자 버전을 구할 수있는 방법이 있는지 알고있다.

내가 뭘 원하는지의 더 나은 이해를 얻기 위하여는, 당신은 내가 대신 CVS 나 SVN의 자식을 사용하려면, 그러나 Doxygen documentation

에서이 예제를 볼 수 있습니다. 힘내와도 가능한가?

[I 우분투에있어, 그리고이 bash를 사용하는 것]

+0

왜 당신이이 번호를 원하십니까 :

다음과 같은 값을 생성합니다 다른 커밋에 위의 명령을 실행? 그 필터는 그 번호로 무엇을합니까? 그 번호는 무엇입니까? –

답변

3

Git 는 저장소에서 객체의 모든 숫자 버전을 저장하지 않습니다. 나는 당신이 객체가 얼마나 많이 변경되었는지 (저장소에 저장되어 있는지) 알고 싶어하며 이것은 쉽게 얻을 수 있다고 생각한다. git log을 사용하여 각 커밋에 대해 한 줄의 텍스트를 생성하고 그 출력 행 수를 계산하라.

이 현재 지점 실행에서 액세스 할 수있는 저장소에 저장된 파일 foo의 버전을 계산하려면

git log --oneline HEAD -- foo | wc -l 

당신의 수를 얻기 위해 분기 이름으로 HEAD을 대체 할 수있는 지점에서 도달 범이 변경 내용을 foo 파일에 저장하거나 모두 제거 할 수 있습니다.

숫자는 파일의 각 버전마다 고유하지 않으며 로그를 가져 오는 데 사용하는 경로에 따라 다릅니다.

체크 개정 그래프의 다음 조각 :

* commit #4 (merge test into master) 
|\ 
* | commit #3 (on branch master) 
| * commit #2 (on branch test) 
|/ 
* commit #1 (on master) 

이의 파일 foo이 # 1 커밋에 추가하고 다른 모든 표시 커밋에서 수정한다고 가정 해 봅시다.

+--------+---------------+ 
| commit | # of versions | 
+--------+---------------+ 
| #1 | 1   | 
| #2 | 2   | 
| #3 | 2   | 
| #4 | 4   | 
+--------+---------------+