2011-02-23 7 views
3

커밋 메시지에서 문자열을 검색하려고합니다. grep에 svn log를 쉽게 파이프 할 수 있지만 메시지와 rev가 별도의 줄에 있기 때문에 조금 더 복잡합니다.누구나 svn 로그 출력을위한 멋진 awk 있나요?

svn log ./ | searchSvnMessages.awk 내가 다른 사람이 나에 편승 할 수있는 더러운 일을했던 것으로 기대했다

------------------------------------------------------------------------ 
r9303 | myuser | 2011-02-22 15:13:47 -0800 (Tue, 22 Feb 2011) | 1 line 

artf29999: Adjusting Skin 
------------------------------------------------------------------------ 
r9302 | myuser | 2011-02-22 14:11:06 -0800 (Tue, 22 Feb 2011) | 1 line 

artf29999: Adding skinning. 
------------------------------------------------------------------------ 
r800 | myuser | 2011-02-22 09:44:36 -0800 (Tue, 22 Feb 2011) | 1 line 

artf29999: Adding functionality. 

을 artf29999?

+0

질문에 대한 답변이 가장 적절하다고 생각되면 옆에있는 체크 표시를 클릭하여 답변으로 표시하십시오. 자신의 평판이나 다른 사람들에게 좋은 –

답변

7

각 로그 항목의 첫 번째 행만 검색하고 GNU grep을 사용하는 경우 svn log . | grep -B2 artf29999을 수행 할 수 있습니다.

+0

가 적합합니다. 그게 내가 필요한 전부 야. 고맙습니다. –

+2

+1 grep의 컨텍스트 플래그 (-A (fter), -B (efore) 및 -C (ontext))는 스크립트가 필요한 곳에서 매우 유용 할 수 있습니다. –

1

또한 svn log ... --xml을 사용하여 xml 출력을 얻을 수 있습니다. 분석이 더 쉬울 수도 있습니다. 또는 다양한 스크립트 바인딩을 사용하여 구문 분석 대신 풍부한 객체를 얻을 수 있습니다.

+0

+1, Perl에 익숙하다면, XML :: Simple 모듈과 함께'svn log --xml'을 사용하면 svn 로그를 통해 쉽게 파싱 할 수 있습니다. 그게 제가 몇 가지 프로젝트에서 한 것입니다. – jamessan