블로그 이미지
magicps
Connected dot

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

TiCumulus Tag Cloud

04-25 09:50
2014. 7. 4. 11:44 Peter's Part 0/Intellij

Intellij에서

연동된 Subversion을 통해서

소스코드를 특정 저장소로

커밋할 때 발생하는 오류 중에

개인적으로 제일 짜증이 솟구치는 오류다.


일단 문제 발생 형태는 아래와 같다.


저장소에서

pom.xml 파일이 포함된

프로젝트를 checkout한다.

이 때 terminal에서

chekcout 한 후

Intellij에서 해당 프로젝트를

import 시킨다.


그리고 일부 소스코드를 수정 후

commit을 하는데

정상적으로 계정명이 포함된 상태로 

checkout을 받았다면

인증 관련 오류가 발생하지 않는다.


svn checkout URL --username <USERNAME>

ex) svn chekcout http://www.opencloudengine.org/svn/flamingo --username peter


위와 같이 정확한 계정명으로 받으면 큰 문제가 없는데

터미널 상에서

계정 명을 잘못 입력한 상태로

비밀번호를 입력하고

프로젝트를 받게되면

프로젝트를 모두 다운 받고 나서 마지막에

계정이 없다고 나오고 checkout이 끝나게 된다.

이렇게 되면 문제가

이 프로젝트를 Intellij에서

커밋할 때

잘못 입력한 계정명으로 커밋을 하게 된다.

그러면 아래와 같은 오류가 반복된다.





svn: E170001: Commit failed

svn: E170001: MKACTIMITY of '/svn/flamingo/!svn/어쩌고저쩌고: authorization failed: Could not authenticate to server: rejected Basic challenge (url)


위와 같은 commit 오류가 발생하는데

잘못된 계정명이나

혹은 계정은 제대로 입력했는데

최소로 입력한 비번이 잘못 되었을 때

subversion에 config 옵션에

저장된 설정에 따라

계정/비번이 계속 저장되어

잘못된 정보로 커밋을 하게 되니

실패가 계속 뜰 수 밖에 없다.


이 문제

Intellij에서 Setting - Version Control - Subversion 탭에서

Clear Auth Cache 버튼을

수천번 눌러도 변경되지 않는다.


Mac OS X Mavericks

Subversion 1.7 기준으로

이 문제의 해결 방법은 아래와 같다.


Intellij를 모두 종료한다.



Terminal에서 아래와 같이 입력한다.

# cd ~/

그리면 .subversion 폴더가 보인다.

안보이면 root 계정으로 로그인 필요.

만약 홈계정이나 직접 특정 위치에

.subversion을 지정했다면

거기로 이동해야 한다.

다시 아래 경로로 이동한다.

# cd .subversion



.subversion 폴더에 보면

config 파일이 있다.

이걸 vi로 연다.

# vi config



그러면 위와 같은 옵션 부분이 있는데

디폴트 값은

store-passwords = no가 주석처리 되어있으니

한번 입력한 계정과 비번이

계속 저장된다.



계정에 비번을 잘못입력했으니

이걸 저장하지 말고

Intellij 상태에서

커밋할 때 svn 계정과 비번을 입력하는

창을 뜨게하려면

일단 이 옵션을 위와 같이

주석처리를 제거 한다.

저장 후

Intellij를 실행한다.



Intellij에서 Setting - Version Control - Subversion 으로 이동 후

Use command line client: svn 옵션이

체크되어 있다.

이걸 체크해제 한다.



Clear Auth Cache 버튼 누를 필요도 없다.

어차피 먹히지 않는 기능이니...ㅡㅡ;

그리고 Apply 후 확인 버튼 누르고

 VCS가 Refresh 된다.



잠시 뒤에

다시 커밋을 실행한다.



ㅡ_ㅡ..

사실 이 창을 띄우는걸 원했는데

구글링 해보면

죄다 Clear Auth Cache 버튼만 누르라는 답변 뿐이다.

subversion repository에서

생성된 프로젝트에서

관리자가 해당 계정명에 할당한

비번을 입력하면

정상적으로 commit이 된다.

저장 정보를 계속 저장해도 되고

이대로 써도 되고

나머지는 본인 취향에 따라..




posted by magicps