2014-11-05 1 views
0

나는 이것이 상대적으로 간단한 요청이라고 생각 하겠지만, 그렇게 보이지는 않습니다. 내 리포지토리의 특정 디렉토리에 대해 해당 디렉토리에 파일 목록 (디렉토리 포함)을 표시해야합니다. 각 파일 옆에 추가 정보 (예 : 그 파일의 마지막 커밋의 datetime 이것은 간단한 저장소 뷰어를위한 것입니다 - cf. github.힘내 : 파일 정보가있는 저장소 디렉토리의 내용

답변

1

저는이 작업을 수행하는 도자기 수준 명령을 인식하지 못했습니다. (내가있는 경우 다른 답변을 알려주십시오.이 파일을 삭제하겠습니다) 올바르게 이해하면 git annotate의 내부 작업과 유사하지만 대신 파일 내 경로 수준에서만 수행 할 수 있습니다. 파일 내 줄 (line-within-a-file).

핵심 논리는 스크립트에서 재생하기가 너무 어렵지 않습니다.

또는 속이려하고 git log에서 정보를 추출 할 수 있습니다. 유일한 트릭은 파일 당 한 번 수행하는 것입니다. 그렇지 않으면 커밋을 병합합니다.

for file in $(git ls-files); do 
    echo $(git log --format=%ad -- $file | head -1) $file 
done 
+0

네, 고통스럽고 고통스럽게 느리기 때문에 특별히 n + 1 git 명령을 수행하지 않고이를 수행하는 방법을 찾고 있습니다. 내가 할 수있는 유일한 방법은 그 결과를 캐시하고 같은 기본 요구 사항에 미치광이가 망할 훅을 통해 캐시를 업데이 트하는 것 같아요; 어쩌면 그것은 github, bitbucket 등이 할 수 있습니다. –

+0

사실, git 명령을 계산하지 않아도 O (1) 호출에서 사용할 수없는 정보를 계속 요청하고 있습니다. 나는 git diff-tree'ing의 초안을 브랜치에 올렸지 만, 그것은 단지 git log보다 느립니다. –

+0

이 문제를 조사해 주셔서 감사합니다. 아마, "git log -1 ..."루프가 좀 더 빠를 것입니까? –