개인적으로 형상관리 시스템으로 아래와 같은 시스템을 사용하고 있다.
Repository(저장소) : Subversion 1.7.3 (CollabNet Subversion Edge 2.3.0)
Continuous Integration(빌드 통합 도구) : Hudson CI 2.2.0
여기서 나같은 경우는 저장소랑 CI를 한 서버에 함께 깔아두고 사용한다. 그 한 서버에서 Apache+Tomcat으로 된 테스트 서버도 돌리고 하다 보니 톰켓은 두개(테스트용 1, Hudson용 1) 아파치도 두개(테스트용 1, svn에 물릴 용도 1)이다. 물론 뭐 이 두개가 서버 자체가 충돌나진 않지만 아래와 같은 오류가 가끔 발생한다.
show detail 을 누르면 아래와 같은 오류를 볼 수 있다.
started ERROR: svn: No credential to try. Authentication failed org.tmatesoft.svn.core.SVNCancelException: svn: No credential to try. Authentication failed at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37) at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32) at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:167) at hudson.scm.FilterSVNAuthenticationManager.getFirstAuthentication(FilterSVNAuthenticationManager.java:38) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:518) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:257) at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:245) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:454) at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:97) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:664) at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:96) at hudson.scm.SubversionSCM$DescriptorImpl.checkRepositoryPath(SubversionSCM.java:1519) at hudson.scm.SubversionSCM.repositoryLocationsExist(SubversionSCM.java:1620) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:455) at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:418) at hudson.model.AbstractProject.checkout(AbstractProject.java:801) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:314) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:266) at hudson.model.Run.run(Run.java:896) at hudson.model.Build.run(Build.java:112) at hudson.model.ResourceController.execute(ResourceController.java:93)
at hudson.model.Executor.run(Executor.java:119) |
그리고 아무리 enter credential을 해서 svn 계정을 입력한들 이 오류는 없어지지 않는다.
아니 나같은 경우는 가끔이 아니라 허드슨 프로젝트 생성 시마다 맨날 발생한다. 솔직히 좀 짜증난다. 한번 생성할 때마다 이 에러가 발생하니 이건 뭐 SVN을 쓰란말인지 말란 말인지..
그런데 생각보다 아주 쉽게 해결했다. 아니 해결이라기보단 이건 페이지 상의 업데이트가 에러인지.. 그건 잘 모르겠지만 어쨌든 해결방법은 아래와 같다.
먼저 SVN 계정 잘 입력한다.
인증된거 확인하고 일단 Close
아직까지도 Unable to access라고 뜬다.
여기서 중요한데, 먼저 Repository URL 입력 Text Area를 한번 클릭해서 커서가 가게 한다.
그리고 Tab키를 한번 누른다.
어이없게도 에러메시지가 없어졌다. 이런 황당한 경우가.. 결국 인증 정보는 저장되었는데, 뭔가가 Update가 안되서 그런 것 같다. 그런데 이게 해결이 되지 않으면 Build가 전혀 되질 않으니 일단은 해결하고 갈 수 밖에 없다.
java.net 의 질답 글을 보면 이 문제는 큰 문제는 아니라고 한다. 가끔 허드슨이 부모 모듈과 자식 모듈의 SVN이 달라서 그렇다는데.. 그건 잘 모르겠고 내생각엔 이건 업데이트 문제라고 본다.
어쨌든 나처럼 반년간 고생하는 사람은 없길 바라는 마음에 적어본다.