'Subversion'에 해당되는 글 39

  1. 2009.06.25 Subversion 접속 정보 수정하기 1
  2. 2009.06.20 Show in Resource History - Subclipse
  3. 2009.06.02 svn: PROPFIND request failed
  4. 2009.06.02 Subversion에서 저장소의 변경된 사항 확인하기
  5. 2009.05.15 Eclipse - Maven Project를 Dynamic Web Project로 만들기
  6. 2009.05.14 Eclipse에서 Checkout Projects from SVN이 보이지 않는다.
  7. 2009.05.02 Subversion 명령어
  8. 2009.02.04 Eclipse에서 Subversion 사용하기
  9. 2009.01.08 Subversion 관리

Subversion 접속 정보 수정하기

- 사용자정보 변경
Eclipse 나 TortoiseSVN 을 이용할 때 사용자정보를 변경하려고 하지만 수정할 곳이 없다.
서브버전 접속정보가 저장된 파일을 삭제하면 사용자정보를 다시 물어본다.
위치는 C:\Documents and Settings\%USER%\Application Data\Subversion\auth
Vista인 경우 C:\Users\%USER%\AppData\Roaming\Subversion\auth
Unix에서는 USER/.subversion/auth/
아래 svn.simple/ 또는 다른 디렉토리에 있음.

파일을 열어보면 접속주소와 사용자계정을 볼수 있다.

참고 : http://subclipse.tigris.org/servlets/ReadMsg?list=users&&msgNo=9395

- Subversion 주소 변경
Relocate 기능을 이용한다.

- 프록시 이용
PuTTY를 통해서 접속하는 경우라면 터널링 설정만 수정하면 된다.
hosts 파일을 이용해도 됨.


Show in Resource History - Subclipse

- Team - Show in Resource History


- 리비전번호와 커밋된 일시, 커멘트를 볼 수 있다.
리비전번호를 선택하면 해당 리비전에 적용된 파일을 볼 수 있다.
파일을 클릭하면 해당 리비전의 파일을 보여준다.(로컬의 파일과 비교해 주면 좋을건데... Compare가 언제 가능한지 잘모르겠다.)

- Create Unified Diff 기능으로 변경된 내용을 볼 수 있다.

- 특정 리비전의 파일 내용을 볼 때 종종 이런 에러가 나온다.
Invalid filesystem revision number
svn: 없는 리비전 428 입니다.

svn: PROPFIND request failed

Subversion을 사용하다가 갑자기 에러가 발생했다.

    RA layer request failed
svn: PROPFIND request failed on '/svn/repos_proj/trunk/src/proj1'
svn: PROPFIND of '/svn/repos_proj/trunk/src/proj1': could not connect to server (http://10.20.30.40:8080)

Q사 서브버전 서버에 접속이 되지 않는다.
회사 아이피에서만 접근이 가능하도록 되어 있다.
서브버전 서버가 죽었나?

전날 외근나갔다가 아이피를 변경한게 기억이 났다.
다시 회사 아이피로 설정하니 된다.

Subversion에서 저장소의 변경된 사항 확인하기

$ svn log
------------------------------------------------------------------------
r80 | sys01 | 2009-04-30 18:01:35 +0900 (목, 30 4월 2009) | 1 line

데이터 수정
------------------------------------------------------------------------
r79 | sys01 | 2009-04-30 17:49:46 +0900 (목, 30 4월 2009) | 1 line

사용자 구분
------------------------------------------------------------------------
...
//마지막 리비전이 80?

$ svn log WEB-INF/
------------------------------------------------------------------------
r85 | sys01 | 2009-05-28 15:01:44 +0900 (목, 28 5월 2009) | 1 line

& 치환
------------------------------------------------------------------------
r70 | sys01 | 2009-04-29 16:43:31 +0900 (수, 29 4월 2009) | 1 line

운영 전환을 위한 설정 변경
------------------------------------------------------------------------
...
//85도 있는데... 그럼 모든 디렉토리를 다 뒤져야 하나?

$ svn log -rHEAD -v //86이 최종
------------------------------------------------------------------------
r86 | sys01 | 2009-05-28 16:18:10 +0900 (목, 28 5월 2009) | 1 line
변경된 경로:
   M /trunk/src/proj1/WebContent/WEB-INF/src/framework/util/StringUtil.java
   M /trunk/src/proj1/WebContent/WEB-INF/src/service/XmlServiceImpl.java
   M /trunk/src/proj1/WebContent/core/viewData.jsp

& 처리
------------------------------------------------------------------------

$ svn diff -r85 WEB-INF/src/framework/util/StringUtil.java
Index: WEB-INF/src/framework/util/StringUtil.java
===================================================================
--- WEB-INF/src/framework/util/StringUtil.java   (리비전 85)
+++ WEB-INF/src/framework/util/StringUtil.java   (작업 사본)
@@ -79,7 +79,7 @@
                if (source == null || source.equals("")){
                        return "";
                }
-               String result = source; //.replaceAll("&", "&");
+               String result = source.replaceAll("&", "&");
         result = result.replaceAll("<", "&lt;");
         result = result.replaceAll(">", "&gt;");
         result = result.replaceAll("\"", "&#034;");

Eclipse - Maven Project를 Dynamic Web Project로 만들기

SVN에서 소스를 받는데 Maven Project여서 몇가지 수정했다.
  1. Java Build Path - Source 에서 PROJECT/src/main/java 를 추가하고 기존 소스경로는 삭제한다.(기존 소스경로 src/를 먼저 삭제해야 할수도 있다.[각주:1])
  2. PROJECT/.settings/org.eclipse.wst.common.component 수정
    /WebContent 를 /src/main/webapp 로 변경한다.

- 또는 Dynamic Web Project 생성시 Content Directory 와 Java Source Directory 위치를 잡아준다.
프로젝트 생성전 저장소를 항상 확인해 둘 것.


  1. 2011-08-22 추가 [본문으로]

Eclipse에서 Checkout Projects from SVN이 보이지 않는다.

New Project에서 Checkout Projects from SVN이 보이지 않는다.
왜지?
Subclipse 기능은 문제없이 사용하고 있음.

플러그인이 문제가 있나해서 플러그인을 확인해 봄.

Subclipse 는 아이콘이 깨진 형태임.
이걸 보면 플러그인에 문제가 있나 했다.
서명여부임. 바부.

SVN Repository Exploring 퍼스펙티브에서 Checkout 하면 되기는 함.

Subversion 명령어

요즘 Unix 에서 svn 명령어를 사용할 일이 있어서 정리해 본다.

$ svn status //항상 확인할 것. 로컬 작업본의 변경 상태를 보여준다.
?      WEB-INF/classes
M      index.jsp
M      index.html

$ svn status - u //서버 저장소의 변경 상태를 보여준다.

$ svn status board

$ svn co http://SVN_SERVER:8080/svn/repos/trunk/SSO
A    SSO/prod
A    SSO/prod/verify.sso

$ svn update

$ svn update board/
U    board/view.jsp
업데이트 된 리비전 81.

$ svn update main/notice.jsp //특정 파일만 업데이트하기

$ svn commit -m "" test/welcome.html //=-=> 문법 맞나?

$ svn update
무시함 '.' //권한이 없는 사용자인 경우였음. root 로 하면 된다.

$ svn log number.txt

$ svn diff number.txt //작업본(working copy)의 변경 내용을 볼 때

$ svn diff -r HEAD number.txt //저장소와 작업본을 비교

Eclipse에서 Subversion 사용하기

Eclipse 3.3.2
Subclipse 1.0.0 (http://subclipse.tigris.org/update 에서 업데이트한다.)


Subversion 관리

- 저장소 관리
  1. 저장소 생성
    > svnadmin create --fs-type fsfs d:/svn_base/rep1 //rep1 이라는 저장소 생성

  2. svnserve.conf 설정(d:/svn_base/rep1/conf/)
    anon-access = none //익명사용자의 접근을 막는다.
    auth-access = write
    password-db = passwd
    authz-db = ../../conf/authz //여러 저장소에서 각각 지정하지 말고 한곳에서 관리하도록 할 수 있다.

  3. 권한 설정(authz) : Path-Based Authorization
    [/]
    * =
    pantarei = rw

    [rep1:/prj1/trunk]
    mir = rw

    [rep2:/]
    * = r #읽기전용

  4. 서버 시작
    > svnserve -d -r d:/svn_base //svn 프로토콜을 사용, 3690 포트 사용

- 서비스 등록
sc \\DEVTEST create svnserve binpath= "C:/Subversion/bin/svnserve.exe --service -r D:/Resources/svn_repos" DisplayName= "Subversion svnserve"

- 저장소 여러 개 사용하기
  1. 위와 같이 저장소를 모아둔 디렉토리를 기준으로 svnserve 를 실행시킨다.
  2. > svnserve -d -r d:/svn_base/rep2 --listen-port 3691
  3. password-db, authz-db 를 한곳에서 관리한다.


- 버전 정보 보기

> svnadmin --version //svnlook --version 동일
svnadmin, 버젼 1.4.6 (r28521)
    Dec 20 2007, 16:19:22에 컴파일 됨
...