2009-05-19 2 views
3

나는 명령 행 SVN을 사용하여 코드를 체크 아웃했습니다. Ant 빌드 스크립트를 실행하고 싶을 때 커밋을 수행합니다.사용자 이름이나 암호없이 svnant를 사용하십시오.

나는

<svn svnkit="false" javahl="false" failonerror="true"> 
    <commit dir="${dir}" message="${message}"/> 
</svn> 

하지만이 작동 내가 직접 간부을 할 경우이

처럼,

[svn] <Commit> started ... 
[svn] svn: Commit failed (details follow): 
[svn] svn: OPTIONS of 'http://svn.local/path/to/my/proj': authorization failed (http://svn.local) 
[svn] <Commit> failed ! 

그러나이 오류를 포기하지 않을 같은 svnant를 사용하고 싶습니다

<exec executable="svn"> 
    <arg line="commit ${dir} -m '${message}'"/> 
</exec> 

정상적으로 작동합니다. 이상한 점은 svnkit="false"javahl="false"을 사용하면 svnant가 svn 명령 줄을 사용하도록되어 있다는 것입니다.

그래서 여기서 어떻게됩니까? svnant 호출에서 사용자 이름/암호를 지정하지 않아도됩니다. 명령 줄 svn이 캐시를 필요로하지 않으므로 분명합니다.

답변

1

간단하고 안정적인 솔루션은 원하는 svn 사용자 이름과 암호를 홈 디렉토리의 build.properties 파일에 저장하고 다른 사용자가 읽을 수 없도록 사용 권한을 설정 한 다음 ant 스크립트에로드하는 것입니다.

저는 빌드 스크립트에서 인증 캐시에 의존해 왔습니다. 조만간 인증이 캐시되지 않거나 잘못된 인증이 캐시 될 것이므로 무엇이 잘못되었는지 알기 위해 시간을 낭비 할 것이므로 성가시다. 또는 빌드 서버와 같은 다른 환경에서 개미를 실행하여 svn의 인증 캐시를 공급하기가 어려울 수도 있습니다. 파일에서 인증 정보를로드하고 개미를 프로그램하여 파일이 누락되면 명확한 메시지를 제공하는 것이 좋습니다.

또한 svnkit 명령 줄 클라이언트를 사용하여 인증을 캐시하고 ant를 통해 사용할 때 여전히 작동하는지 확인할 수 있습니다.

이 스레드는 동일한 문제에 대해 이야기합니다. http://www.nabble.com/svnant-and-authentication-td17865407.html

관련 문제