본문으로 바로가기

IPTIME NAS3에 SVN 설치

category 개발도구 & 환경/소스관리(GIT,SVN) 2017. 10. 2. 08:30

한동안 IP Time NAS3를 유용하게 잘 사용해 왔었다.
저렴한 비용으로 필요한 기능들을 요긴하게 사용했던 것 같다.

Express Engine,SVN,FTP 등 요긴한 기능들을 사용하면서 꽤 만족 했었다.특히 Smart Phone에서 Cloud Service를 이용하여 파일을 공유하고 백업햐는 기능들은 참으로 유용했다고 생각된다.
지금은 QNAP NAS TVS-463으로 갈아 탓다. 용량확장도 필요했고,JAVA가 구동되어야 하는 환경도 필요했고 여러가지 검토 하다,QNAP NAS에 VMware와 같은 가상 머신이 탑재된다는 매력이 있어서 고심끝에 QNAP을 선택했다.

IP time NAS만 사용할때는 못 느겼는데 QNAP을 사용하다 보니, NAS의 성능과 기능에 대해 많은 차이를 느끼게 되었다.두 제품간에는 가격부터 많은 차이가 나기때문에 두제품의 성능과 기능을 비교한다는 자체가 모순이기 때문에 별도로 언급하지 않겠다.소스관리를 위해 사용하고 있던 SVN과 관련한 내용을 살펴보고, 오랜만에 다루게 되면서 다소 헛갈렸던 내용을 기록 해 두기 위해 이글을 쓴다.
나의 경우는 QNAP NAS를 사용하면서 SVN 대신 GIT으로 전환 했다.GIT은 보다 나은 안정성 ,LOCAL 및 Server 연동 유연성을 제공하므로 SVN에서 GIT으로 전환하는 것이 바람직 하다고 본다.
그간 SVN을 사용할 때, 나의 경우는 Visual SVN 을 LOCAL에 설치하고 작업을 한다음 필요한 경우 NAS의  SVN에 Commit 해서 사용하곤 했었다.이런 불편한 방법을 해소 하려고 시도 해보기도 했었지만 방법을 찾기도 쉽지 않았지만 차기버젼에서는 연동방법을 제공하겠지 하는 막연한 기대를 가지고  불편을 감수하면서 사용했었다.다행인지 모르지만 GIT이 나의 기대를 대신해주고 있다.

SVN을 믿고 백업해둔 파일들이 종종 손상되어 원본을 복구할 수 없는 불편한 사항들이 종종 있었다. 매유 당황스럽다.이렇게 글을 남겨놓는 이유는 이제 SVN을 쓰지 않게될 것이지만 이전에 사용하고 있던 소스들을 GIT으로 완전히 옮기기 전에는 당분간 사용해야하기 때문이다.

나의 경우는 LOCAL 의 VISUAL SVN 과 NAS의 SVN이 각각 존재하므로 이들을 통합해서 정리해야 한다.간혹 기억이 나지 않아서 헤메는 경우가 있기에 메모를 해두고자 한다.

    1. IP TIME NAS3에 SVN설치하기
      . SVN 서버 구동하고 repository 생성하기.
      -ipTIME NAS의 관리UI를 통해 SVN 서비스를 실행 하고, SVN Repository를 생성.
    2. 설정 파일(svnserve.conf, passwd) 수정.
      생성된 Repository 하단의 conf 폴더에 svnserve.conf, passwd, 편집

      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
      31
      32
      33
      34
      35
      36
      37
      38
      [general]
      ### These options control access to the repository for unauthenticated
      ### and authenticated users.  Valid values are "write", "read",
      ### and "none".  The sample settings below are the defaults.
      anon-access = read <-- 주석 해제
      auth-access = write <-- 주석 해제
      ### The password-db option controls the location of the password
      ### database file.  Unless you specify a path starting with a /,
      ### the file's location is relative to the directory containing
      ### this configuration file.
      ### If SASL is enabled (see below), this file will NOT be used.
      ### Uncomment the line below to use the default password file.
      password-db = passwd <-- 주석 해제
      ### The authz-db option controls the location of the authorization
      ### rules for path-based access control.  Unless you specify a path
      ### starting with a /, the file's location is relative to the the
      ### directory containing this file.  If you don't specify an
      ### authz-db, no path-based access control is done.
      ### Uncomment the line below to use the default authorization file.
      authz-db = authz <-- 주석 해제
      ### This option specifies the authentication realm of the repository.
      .
      .
      .
      - anon-access : 로그인하지 않은 사용자에 대한 접근 권한 설정 (read, write, none 중 하나)
      - auth-access : 로그인한 사용자에 대한 접근 권한 설정 (read, write, none 중 하나)
      - passwd-db : 저장소에 접근할 사용자 계정과 비밀번호를 관리할 파일 지정
      - authz-db : 파일과 디렉터리에 대한 접근 권한을 관리하는 파일 지정
       
      2) passwd
      - 이 파일은 svnserve.conf 에서 passwd-db 항목에 설정한 파일이어야 함
      - 파일 내부의 예제를 참고하여 계정과 비밀번호 추가
      (ex. admin = admin)
      - 보안 이슈가 있다면 Apache 서버와 연동하여 htpasswd 파일을 이용할 수도 있음
       
      3) authz
      - 이 파일은 svnserve.conf 에서 authz-db 항목에 설정한 파일이어야 함
      - 파일 내부의 예제를 참고하여 접근 권한 설정

 

  •  SVN 서비스 이용하기.
    PC에 윈도우용 SVN 클라이언트(totoise-svn)를 설치한후
    ‘URL of repository’ 를 ‘svn://192.168.50.15/test’ 또는 ‘svn://xxxx.ipdisk.co.kr:xxxx/test’ 로 접속한다.

    나의 경우는 VISUAL SVN을 같이 사용하고 있으므로 ‘http’와 ‘svn’ 을 명확히 구분하여 사용해야 하는데  종종 착각하여 사용하던 문제가 있다. 어찌보면 별것 아닌 단순한 문제이지만 간혹 이것 때문에 헛갈려서 엉뚱한 곳에서 햐결책을 찾을려고 실수를 하는 경우가 가 있어서 메모를 해둔다.VISUAL SVN에 Link할때는  ‘http://MyPCIP/svn/project’  또는 ‘https://MyPCIP/svn/project’ 와 같이 연결된다는것을 명심하자 , 종종 실수를 반복하곤한다.