2012-10-29 2 views
3

주어진 네임 스페이스의 노트가있는 커밋 만 표시하는 커밋 로그를 덤프하려면 어떻게합니까?git 로그를 필터링하여 노트로 커밋 만 표시

메모없이 커밋하거나 텍스트 덤프 나는 또한 정보를 커밋 바로 메모를하지 않으에서

을 필터링해야 주어진 네임 스페이스에 속하지 않는 노트.

나는 show refs/notes /와 놀았으며, 그 해결책이 "git log"보다는있을 것이라고 생각합니다. 그러나 나는 여전히 모든 커밋을 보여주는 올바른 명령을 찾기 위해 몇 가지 문제가 있습니다.

+0

'git notes list'로 뭔가 해봤습니까? –

답변

4

git notes은 각 메모의 ID와 해당 개체가 적용되는 개체를 제공합니다. 따라서 두 번째 열은 원하는 것입니다. 마지막 열은 cut를 사용 git show로 전달

$ git notes 
f5ac8874676de3029ffc8c31935644ff7c4deae0 07ca160c58cf259fe8bb5e87b9d9a7cbf8845f87 
62ecfc95355587d6d1f779fcaca6e4f53d088ccc eb6c60b9dcb56219d9d882759c0bf928f6d6c3fa 

잡아.

$ [ "$(git notes)" = "" ] || git notes | cut -d' ' -f2 | xargs git show 

--ref=namespace git notes에 추가, 특정 네임 스페이스를 선택합니다.

$ [ "$(git notes --ref=namespace)" = "" ] || git notes --ref=namespace | cut -d' ' -f2 | xargs git show 

초기 테스트 [...]는 약간의 문제를 방지합니다. git show는 인수가없는 경우 현재 체크 아웃을 표시합니다. 메모가 없으면 오해의 소지가 있습니다. 초기 테스트에서는 문제가 발생했습니다. 테스트가 실패한 경우, 즉 메모가없는 경우 git show가 호출되지 않습니다.

[ "$(git notes)" = "" ] || git notes | cut -d' ' -f2 | xargs git show 

을하거나 특정 네임 스페이스 데리러 :

+0

감사합니다! – SystematicFrank

+3

'-r' 플래그 (또는'--no-run-if-empty')는 GNU'xargs'의 경우 "약간의 문제"를 수정합니다. –

0

당신은 Schwern에 응답에 테스트를 추가 할 수 있습니다 다음

[ "$(git notes --ref=namespace)" = "" ] || git notes --ref=namespace | cut -d' ' -f2 | xargs git show 

을 경우 초기 테스트 [...] 실패, 즉, 메모가없는 경우 자식 표시은 호출되지 않습니다.

관련 문제