[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으로 추가하고
아까 설정한 아이디와 패스워드를 입력한다.
정상적으로 연결되었다.
'IDE' 카테고리의 다른 글
[Rider] generate applicationhost.config (0) | 2022.06.23 |
---|---|
[Visual Studio] 테마 변경, 줄 번호 표시, 텍스트 색 변경 (0) | 2022.05.31 |
[Visual Studio] 대상 프레임워크 버전 변경(target .NET Framework) (0) | 2022.05.30 |
[Intellij] Terminal에서 명령어 왜 안되나요? (PowerShell -> Git bash) (0) | 2022.03.05 |
[Intellij] SVN merge for Override (Resolve Conflits) (0) | 2021.12.23 |