-->

이미지 너무 크다

[SVN] Window Server에서 Repository 생성

 

 

아파치 서브버전은 Git과 함께 형상관리의 중요한 툴로 자리 잡고 있다. 보통 레거시 프로젝트들은 svn을 사용한다. 

리눅스에 svn 서버를 설치하기도 하는데 회사엔 window server에 설치되어있어 작업해보도록 하겠다.

cmd로도 작업할 수 있지만 윈도우의 강력한 cli인 powershell을 하나 켜주자.

 

1. svn 설치 및 확인

PS D:\> svn help
사용법: svn <subcommand> [options] [args]
Subversion 명령행 클라이언트 버전 1.6.0.
'svn help <subcommand>'를 사용하여 특정 명령에 대하여 도움말을 얻으십시오.
'svn --version'를 사용하여 버전과 원격접속 모듈에 대한 정보를 얻으십시오.
 또는 'svn --version --quiet'를 사용하여 버전 정보만 얻으십시오.

대부분의 하위 명령들은 재귀적으로 수행하면서 파일이나 디렉토리를 인자로 취합니다.
명령들에 인자가 주어지지 않으면 현재 디렉토리를 포함하여 재귀적으로 수행하게
됩니다.

가능한 명령:
   add
   blame (praise, annotate, ann)
   cat
   changelist (cl)
   checkout (co)
   cleanup
   commit (ci)
   copy (cp)
   delete (del, remove, rm)
   diff (di)
   export
   help (?, h)
   import
   info
   list (ls)
   lock
   log
   merge
   mergeinfo
   mkdir
   move (mv, rename, ren)
   propdel (pdel, pd)
   propedit (pedit, pe)
   propget (pget, pg)
   proplist (plist, pl)
   propset (pset, ps)
   resolve
   resolved
   revert
   status (stat, st)
   switch (sw)
   unlock
   update (up)

Subversion은 형상관리를 위한 도구입니다.
더 상세한 정보를 위해서는 http://subversion.tigris.org/ 를 방문하세요.
PS D:\>

svn 이 설치되어 있어야한다. 

 

2. svnadmin create 

PS D:\> svnadmin help
일반적인 사용법: svnadmin SUBCOMMAND REPOS_PATH  [ARGS & OPTIONS ...]
특정 부속 명령의 사용법을 위해서는 'svnadmin help <subcommand>' 를 참조하십시오.
'svnlook --version'으로 버전과 파일시스템 모듈을 볼 수가 있습니다.

가능한 하위 명령 목록:
   crashtest
   create
   deltify
   dump
   help (?, h)
   hotcopy
   list-dblogs
   list-unused-dblogs
   load
   lslocks
   lstxns
   pack
   recover
   rmlocks
   rmtxns
   setlog
   setrevprop
   setuuid
   upgrade
   verify

svnadmin 명령어를 통해 repository를 새로 생성할 수 있다.

 

PS D:\> cd D:\Repository\
PS D:\Repository> svnadmin create --fs-type fsfs android

원하는 경로로 이동해 파일시스템 형식의 repository를 생성해준다.

svn repository가 정상적으로 생성되었다.

 

3. 환경설정

conf 폴더로 이동해 svnserve 파일을 열어주자.

#svnserve

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)

### Visit http://subversion.tigris.org/ for more information.

[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.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
# realm = My First Repository

[sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
# use-sasl = true
### These options specify the desired strength of the security layer
### that you want SASL to provide. 0 means no encryption, 1 means
### integrity-checking only, values larger than 1 are correlated
### to the effective key length for encryption (e.g. 128 means 128-bit
### encryption). The values below are the defaults.
# min-encryption = 0
# max-encryption = 256

 

원하는 환경설정을 해주면 되는데 아무나 접근할 수 없게 접근 조치만 변경한다.

...
[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 = none
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
...

외부 접근을 금지하고 인가된 계정은 write권한을 주었다.

 

4. 계정생성

conf 폴더의 passwd 파일을 열어서 계정을 추가한다.

#passwd

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
minggu = minggu123

id = password 형식으로 만들어주자.

 

5. 연결 확인

안드로이드 스튜디오에 Version Control을 Subversion으로 추가하고 

아까 설정한 아이디와 패스워드를 입력한다.

정상적으로 연결되었다.

 

 

+ Recent posts