2009-12-09 7 views
0

makefile 규칙을 만들어 svnversion이 올바른 결과를 제공했는지 확인하려고합니다. 이 같은 오류 얻을 수 있습니다, 그러나svnversion 결과를 확인하는 Makefile 규칙

1023:1055M 
1056 

:

일반적으로, 그것은 다음 중 하나처럼 뭔가를 반환해야합니다 그래서 여기

svn: This client is too old to work with working copy '.'; please get a newer Subversion client 

을 규칙의 나의 버전은 기타를 기반으로 게시물 :

test2: 
    @if [ $$(svnversion | sed s/[0-9:M]*//g | grep '.') -neq ""]; \ 
    then               \ 
      echo >&2 "Unexpected result from 'svnversion'"   \ 
       "of $$(svnversion)";         \ 
      false;             \ 
    fi 

그러나 두 조건 모두에서 조건이 실행되는 것으로 보입니다.

+0

단순히 : $ (svnversion)의 경우 | sed s/[0-9 : M] * // g | grep. ; then ... (보호되지 않음) test (또는 [)를 호출 할 필요가 없습니다. –

+0

다른 게시물을 기반으로 하시겠습니까? 그것이 작동하지 않는다면 왜 다른 게시물을 시작하는 대신 다른 게시물에 질문을 해결하지 않습니까? – Beta

+0

다른 하나가 해결되어 작업되었지만 이는 새로운 변형입니다. – WilliamKF

답변

0

내가 결국이 문제를 해결하는 방법입니다

쉬 조각이 감소 될 수있다
test_svnversion_output: 
    @if [ $$(svnversion 2>&- | wc | awk '{print $$1}') -eq 0 ];  \ 
    then               \ 
     echo >&2 "Error: 'svnversion' produced bad result"   \ 
      "'$$(svnversion 2>&1)'.";        \ 
     false;              \ 
    fi 
1

'svnversion'명령은 작업 복사본을 업데이트하는 데 사용하는 클라이언트보다 다른 보조 Subversion 버전의 명령임을 알리는 오류가 표시됩니다.

예. 이 문제는 Subversion 1.6.6 기반의 TortoiseSVN을 Subversion 1.5.6 명령 줄 클라이언트와 함께 사용할 때 발생합니다. 여기

+0

이것은이 질문에서 요구되는 것이 아닙니다. – WilliamKF

0
@if ! $(subversion) | grep -qE "[0-9]+:[0-9]+M"; then 
+0

이것은 나를 위해 작동하지 않습니다. – WilliamKF

+2

svnversion은 결과에 S 및 P를 사용할 수도 있고 이러한 문자를 조합하여 사용할 수도 있습니다. –