'Subversion'에 해당되는 글 2건

  1. 2011.05.22 PROPFIND 302 FOUND ERROR
  2. 2011.05.22 svn merge 방법

Apache + SVN(Subversion) 환경에서 http 프로토콜로 svn을 사용하다보면

커맨드라인에서 아래의 명령을 수행할때 정말 원인도 모르게

$ svn add newfile.txt
$ svn commit newfile.txt

"PROPFIND 궁시렁 궁시렁 ... 302 궁시렁" 하는 에러가 발생하는 경우가 있다.
 

만일 windows 환경에서 TortoiseSVN을 사용한다면 다음과 같은 형태로 에러를 볼수 있다.

Error Commit failed (details follow):

Error Repository moved temporarity to

Error 주소표시

Error please relocate

Error Repository moved temporarity to

Error 주소표시

Error please relocate


위 에러는 원인은...

apache 설정파일 중에 "ErrorDocument 404" 에대한 handler가 등록되 있을 경우

svn add/commit 이 302 에러로 실패 할수 있다고 한다.. 정말 지저분하다.. 망할.. -_-;;

물론 본인이 "ErrorDocument 404" 헨들러를 설정하지 않았어도..

apache랑 연동되는 수많은 프로그램중 하나가 설정 했을 수 있다.

여튼 해결 방법을 알아보면 httpd 설정파일에서 svn 관련 설정부분에

다음 예제와 같이 "ErrorDocument 404 defaut" 처리 해서 "ErrorDocument 404" 를 꺼버리면 된다.

<Location /repos>
DAV svn
SVNParentPath /var/www/svn
SVNIndexXSLT /svnindex.xsl

# Limit access to list of valid users.
# Require SSL connection for password protection.
# SSLRequireSSL

AuthType Basic
AuthName "Multiplex Systems Subversion Repository"
AuthUserFile /var/www/auth-file
Require valid-user
ErrorDocument 404 default
</Location>



* 추가 내용 *

처음부터 302 에러가 나는 것은 아니고.. svn move, svn delete 등 명령이 수행된 이후나 여튼

어떤 알수 없는 조건이 충족되고 나면 발생하는 듯함.


'개발&컴퓨터시스템 > Subversion' 카테고리의 다른 글

svn merge 방법  (0) 2011.05.22
Posted by kabangkle

svn merge 작업은 몇달에 한번씩만 하다보니 명령어를 까먹어서 매번 검색을 하는거 같다.
그냥 내 블로그에 정리를 해두자~

"1.1-stable" 이라는 브랜치의 작업 내용을 "trunk"에 반영(merge) 작업을 한다고 가정함. 

1. "1.1-stable"이 최초로 생성된 revision을 얻는다. 아래의 명령어를 이용하여 가장 밑에 로그 revision을 확인함.

$ svn log --stop-on-copy svn://www.test.com/test/branches/1.1-stable


2. 1에서 얻은 revision이 3000일 경우 "trunk"로 이동하여 아래의 명령어와 --dry-run 옵션을 추가로 이용하여 가상으로 merge 결과를 확인해본다. (--dry-run 옵션은 실제로 merge 작업을 하지 않고 merge 결과만 보여준다.)
아래의 명령은  revision 3000~최신 까지 "1.1-stable" 브랜치에서 작업된 내용을 "trunk"에 가상으로 반영해본다는 내용이다.

$ cd trunk
$ svn merge --dry-run -r3000:HEAD svn://www.test.com/test/branches/1.1-stable ./


3. 2의 결과를 보고 별다른 문제가 없으면 --dry-run을 제거하고 실제로 merge를 실행한다. 이때 소스코드에서 충돌이 발생하면 충돌난 부분을 찾아서 수정해준다.

$ svn merge -r3000:HEAD svn://www.test.com/test/branches/1.1-stable ./


4. merge가 완료된 trunk 코드를 diff 나 기타 방식대로 점검을 해본다.(귀찮거나 자신있으면 생략~ ^^)

$ svn diff | vi -


5. merge된 trunk를 commit 하여 작업을 완료한다. 

$ svn commit -m "브랜치 1.1-stable 작업 내역을 trunk에 반영함"



이제 merge된 코드를 빌드하여 테스트를 즐긴다~

'개발&컴퓨터시스템 > Subversion' 카테고리의 다른 글

PROPFIND 302 FOUND ERROR  (0) 2011.05.22
Posted by kabangkle