을 얻는 방법을 재귀 svn 비난을 보고서에서 단일 xml 파일이 아닌 모든 바이너리 파일에는지요?

StackOverflow https://stackoverflow.com/questions/413777

문제

어떻게 받을 수 있는 완전히 재귀 svn 비난을 보고서에 대한 모든 비즈-바이너리 파일에 지점 출력에서는 싱글 파일에서는 xml 형식으로 포함되어 있 개정,날짜,저자,파일 이름 및 경로,그리고 텍스트의 라인의 파일까요?전체 출력을 할 필요가 단일 파일입니다.실행됩의 한 부분으로 구축을 통해 CCNet 인스턴스입니다.

사용되는 도구는 최신 안정 버전의 넝 및 nantcontrib 블렌드 및 visual studio 서로 다른 범주,그리고 최신 명령 라인 svn.

여기에는 문제의 일부가 실행으로:명령행 svn 비난 명령을 지원하지 않는 디렉토리 재귀.비난의--xml 옵션을 포함하지 않는 실제적인 텍스트의 각 라인,하지만 그것은 것입니다.기본적으로 nantcontrib 전달--조용한 매개 변수(반하는 작업 참조)에 지원하지 않는 비난을 명령입니다.Nantcontrib svn 작업 동의하지 않을 수 있습니다--xml 매개 변수입니다.

도움이 되었습니까?

해결책

간단한 대답은 없는 쉬운 방법입니다.최,가장 정확한 방법을 작성하는 것입 당신의 자신의 svn 클라이언트(또는 확장 기존)이 기능은 당신이 필요합니다.거의 사소한.

또한 잘못된 방법으로 그것을 할 수있는 또한 포함됩니다. 이것을 하지 않는:

find . -type f | grep -v .svn | xargs svn blame > line_data
find . -type f | grep -v .svn | xargs svn --xml blame > xml_data

할 수 있는 스크립트는 두 개의 svn 명령을 피하기 위해 함께 실행 find 두 번지만,이것은 아직도 극심한 느립니다.부상으로 모욕을 추가,당신은 다음을 분석하고 두 파일을 자신을 추가 실제 소스 라인으로는 xml 데이터입니다.

슬프게도,내 생각에 이것은 정도의 지원을 위해 당신이 무엇을 원하는 표준 svn 클라이언트,나를 찾을 수 없는 다른 클라이언트는 더 나은 것들(일부는 심지어 지원 blame).

다른 팁

나는 당신이 어떤 OS를 사용하고 있는지 모릅니다. 그러나 단순한 루프 및 "svn ls -r"명령을 사용하여 분기 (Workspace/URL)에 모든 파일을 재귀 적으로 나열한 다음 "svn blame -xml"에 파이프 할 수 있습니다.

SVN 명령 줄 프롬프트에서 이것을 시도했으며 잘 작동합니다 (Windows XP, SVN 1.4.4). 내가 사용한 명령은 다음과 같습니다.

for /f "austackq delims ==" %i in (svn ls -R http://myurl/mybranch) do @svn blame --xml %i

참고 : 작업 공간 에이 명령을 입력하고 (분기 루트를 반영) 위의 명령에서 URL 대신 'SVN LS -R`을 사용하는 경우 일부 "URL이 찾을 수 없습니다"오류 유형을 피할 수 있습니다.

도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top