μƒˆμ†Œμ‹

DevOps/Git

[SVN] SVN μ„€μΉ˜ κ΄€λ ¨ 자료

  • -

 

 

svn(Subversion) : μ„œλΈŒλ²„μ „

ν”„λ‘œμ νŠΈ, μ†ŒμŠ€, 파일, λ¬Έμ„œ λ“±μ˜ 버전을 κ΄€λ¦¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨

 

 

 

 

 

01. μ„€μΉ˜ 확인

 

]# svn

λ˜λŠ”

]# svn –version

λ˜λŠ”

]# rpm –qa | grep subversion

 

 

 

 

μ„€μΉ˜

 

yum을 μ΄μš©ν•΄μ„œ μ„€μΉ˜ν•œλ‹€.

]# yum install subversion

 

<μƒλž΅>

μ„€μΉ˜ 쀑 질문이 λ‚˜μ˜€λ©΄ yλ₯Ό μž…λ ₯ν•˜κ³  μ—”ν„°

 

<μƒλž΅>

 

 

 

μ„€μΉ˜ 확인

 

]# svn

λ˜λŠ”

]# svn –version

λ˜λŠ”

]# rpm –qa | grep subversion

 

 

 




 

 

 

 

 

02. μ €μž₯μ†Œ(repository) λ§Œλ“€κΈ°

 

 

μ €μž₯μ†Œλ“€μ„ ν•œ λ””λ ‰ν† λ¦¬μ—μ„œ κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ μ΅œμƒμœ„ λ””렉토리 /svn λ§Œλ“€κΈ°

- /svn μ΄λ¦„ 및 μœ„μΉ˜λŠ” λ³€κ²½ κ°€λŠ₯

- /svn μ•„λž˜μ— μ—¬λŸ¬ 개의 μ €μž₯μ†Œλ₯Ό λ§Œλ“€ 수 μžˆλ‹€.

]# mkdir /svn

]# cd /svn

 

 

/svn 디렉토리 내에 μ €μž₯μ†Œλ₯Ό λ§Œλ“ λ‹€.

 

svnadmin create --fs-type fsfs μ €μž₯μ†Œλͺ…

]# svnadmin create --fs-type fsfs okkks.tistory.com

 

 

 

 

 



 

03. svnserve μ„œλΉ„μŠ€ λ°λͺ¬ λ§Œλ“€κΈ°

 

 

μ €μž₯μ†Œ(repository)λ₯Ό λ§Œλ“€μ§€ μ•Šμ•˜λ‹€λ©΄ svn μ €μž₯μ†Œ(repository) λ§Œλ“€κΈ° μ°Έκ³ .

 

/etc/sysconfig/svnserve νŒŒμΌ λ§Œλ“€κΈ°

- yum으둜 μ„€μΉ˜ν•΄λ„ μœ„ 파일이 μƒμ„±λ˜μ§€ μ•ŠμœΌλ―€λ‘œ 직접 λ§Œλ“ λ‹€.

service svnserve start/status/stop λ“±μ˜ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  수 μžˆλ‹€.

echo 'OPTIONS="--threads --root μ €μž₯μ†Œμ˜ μ΅œμƒμœ„ λ””렉토리"' > /etc/sysconfig/svnserve

]# echo 'OPTIONS="--threads --root /svn"' > /etc/sysconfig/svnserve

]# ll / etc/sysconfig/svnserve

]# cat /etc/sysconfig/svnserve

λ˜λŠ”

]# vi /etc/sysconfig/svnserve

OPTIONS="--threads --root /svn"




 

 

 

 

04. svnserve.conf μ„€μ •

 

 

/svn/μ €μž₯μ†Œ λ””렉토리/conf/svnserve.conf

svnserve.conf νŒŒμΌμ€ λͺ¨λ“  λ‚΄μš©μ΄ μ£Όμ„μœΌλ‘œ μ²˜λ¦¬λ˜μ–΄μžˆλ‹€.

원본은 λ³΄κ΄€ν•˜κ³  μƒˆλ‘œ λ§Œλ“ λ‹€.

]# cat /svn/okkks.tistory.com/conf/svnserve.conf

 

<μƒλž΅>

 

 

]# cd /svn/okkks.tistory.com/conf/

]# ll

]# mv svnserve.conf svnserve.conf.old

]# ll

 

 

 

 

]# vi svnserve.conf

[general]

anon-access none

auth-access write

password-db passwd

authz-db authz

realm = okkks.tistory.com repository

 

 

 

 

]# cat svnserve.conf

 

μ„€λͺ…

- anon-access = none => λΉ„인증 κ³„μ • μ ‘κ·Ό κΆŒν•œ μ—†μŒ

auth-access = write => μΈμ¦ 계정 :  μ“°κΈ° κΆŒν•œ

- password-db = passwd => μΈμ¦ 계정 정보

authz-db = authz => μΈμ¦ κ³„μ •μ˜ μ €μž₯μ†Œ κΆŒν•œ μ„€μ • 파일

- realm = okkks.tistory.com repository => μΈμ¦ν•  λ•Œ λ³΄μ—¬μ£ΌλŠ” κ°„λ‹¨ν•œ μ €μž₯μ†Œ μ„€λͺ…이닀.(μƒλž΅ κ°€λŠ₯)

 

 

κΆŒν•œ

none : μ—†μŒ, read : μ½κΈ°, write : μ“°κΈ° 




 

 

 

05. passwd μ„€μ • : κ³„μ •(users/passwd)

 

 

/svn/μ €μž₯μ†Œ λ””렉토리/conf/passwd

원본은 λ³΄κ΄€ν•˜κ³  μƒˆλ‘œ λ§Œλ“ λ‹€.

]# cd /svn/okkks.tistory.com/conf/

]# ll

]# cat passwd

 

 

 

]# mv passwd passwd.old

]# vi passwd

[users]

user1 = 1234

user2 = 1234

 

 

μ„€λͺ…

- 2λͺ…μ˜ κ³„μ • 생성(user1/1234, user2/1234)




 

 

 

 

06. authz μ„€μ • : κΆŒν•œ

 

 

/svn/μ €μž₯μ†Œ λ””렉토리/conf/authz

원본은 λ³΄κ΄€ν•˜κ³  μƒˆλ‘œ λ§Œλ“ λ‹€.

]# cd /svn/okkks.tistory.com/conf/

]# mv authz authz.old

]# vi authz

[/]

user1 = rw

user2 = rw

 

 

 

]# cat authz

 

 



 

 

 

07. λ°©ν™”λ²½ μ„€μ •(svn μ™ΈλΆ€ 접속)

 

 

μ™ΈλΆ€μ—μ„œ svn μ„œλ²„에 μ ‘μ†ν•˜κΈ° μœ„ν•œ μ„€μ •(iptables)

svn이 μ‚¬μš©ν•˜λŠ” 3690 ν¬νŠΈλ₯Ό μ—°λ‹€

]# vi /etc/sysconfig/iptables

<μƒλž΅>

-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

 

 

 

 

λ°©ν™”λ²½ 섀정을 μ μš©μ‹œν‚¨λ‹€.

]# service iptables restart







08. svnserve μ„œλΉ„μŠ€ 데λͺ¬ μ‹œμž‘

 

 

/etc/sysconfig/svnserve νŒŒμΌ 섀정을 ν–ˆμœΌλ©΄ service λͺ…λ Ήμ–΄λ‘œ μ„œλΉ„μŠ€λ₯Ό μ‹œμž‘/쀑지할 수 μžˆλ‹€.

svn은 3690 ν¬νŠΈλ₯Ό μ‚¬μš©ν•œλ‹€. (netstat λͺ…λ Ήμ–΄λ‘œ 확인)

]# service svnserve start

]# ps –ef | grep svnserve

]# netstat –anp | grep svnserve

 

 

 







09. svn μžλ™ μ‹œμž‘ μ„€μ •

 

 

(재)λΆ€νŒ…μ‹œ svnserve μ„œλΉ„μŠ€λ₯Ό μžλ™μœΌλ‘œ μ‹œμž‘ν•œλ‹€.

]# chkconfig --list svnserve

]# chkconfig svnserve on

]# chkconfig --list svnserve

 

 






svn에 접속이 λ˜λŠ”μ§€ 인증 확인을 ν•œλ‹€.

svn co svn://ip λ˜λŠ” 도메인 μ£Όμ†Œ/μ €μž₯μ†Œ

]# svn co svn://127.0.0.1/okkks.tistory.com

λ˜λŠ”

]# svn checkout svn://127.0.0.1/okkks.tistory.com

 

 

μ§„ν–‰λ˜λ©΄μ„œ root μ•”ν˜Έμ‚¬μš©μžλͺ…μ‚¬μš©μžλͺ…μ˜ μ•”ν˜Έλ₯Ό μž…λ ₯ν•œλ‹€.

 

(svnserve.conf μ„€μ • : realm μƒλž΅)

 

 

(svnserve.conf μ„€μ • : realm = okkks.tistory.com repository)

 

 

(svn 인증 성곡)

 

μ²΄ν¬μ•„μ›ƒλœ λ¦¬λΉ„μ „ 0”이 λ‚˜μ˜€λ©΄ 성곡 (checked out revision 0.)

 

 

μ°Έκ³ > λΉ„λ°€λ²ˆν˜Έ(μ•”ν˜Έν™”λ˜μ§€ μ•Šμ€)λ₯Ό μ €μž₯할지 물어보면

Store password unencrypted (yes/no)?

"yes" λ˜λŠ” "no"λ₯Ό μž…λ ₯해도 μ•ˆλ˜λŠ” 경우 ν•œκΈ€λ‘œ "예"λ₯Ό μž…λ ₯ν•œλ‹€.

linux μ–Έμ–΄ 섀정이 ν•œκΈ€λ‘œ λ˜μ–΄ 있기 λ•Œλ¬Έμ΄λ‹€.

]# echo $LANG

 

 

 

 

svn μΈμ¦ μ‹€νŒ¨μ΄λ©΄ svnserve.confpasswdauthz μ„€μ • 뢀뢄을 λ‹€μ‹œ ν™•μΈν•œλ‹€. 






10. κΈ°λ³Έ λ””렉토리 λ§Œλ“€κΈ°

 

 

svn mkdir λͺ…λ Ήμ–΄λ₯Ό μ΄μš©ν•΄μ„œ trunk, tags, branches λ””렉토리λ₯Ό λ§Œλ“ λ‹€.

]# svn mkdir svn://127.0.0.1/okkks.tistory.com/trunk 

 

svn mkdir λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  수 μ—†λŠ” 경우 λ‚˜μ˜€λŠ” λ‚΄μš©μ΄λ‹€.

 

 

 

svn mkdir λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•œ μ„€μ •

- ~/.bash_profile λ§¨ μ•„λž˜μ— μΆ”κ°€ν•œλ‹€.

- source λͺ…λ Ήμ–΄λ₯Ό μ΄μš©ν•΄μ„œ .bash_profile에 μΆ”κ°€ν•œ λ‚΄μš©μ„ μ μš©ν•œλ‹€.

]# cd ~

]# vi .bash_profile

<μƒλž΅>

SVN_EDITOR=/usr/bin/vim

export SVN_EDITOR

 

]# source .bash_profile

 

 

 

svn mkdir λͺ…λ Ήμ–΄λ‘œ trunk, tags, branchesλ₯Ό 각각 λ§Œλ“ λ‹€.

μ €μž₯ ν›„ λΉ μ Έλ‚˜μ˜¨λ‹€(:wq μž…λ ₯)

“c”λ₯Ό μž…λ ₯ν•œλ‹€.

]# svn mkdir svn://127.0.0.1/okkks.tistory.com/trunk

svn://127.0.0.1/okkks.tistory.com/trunk

~

~

<μƒλž΅>

 

:wq μž…λ ₯ν•΄μ„œ μ €μž₯ ν›„ λΉ μ Έλ‚˜μ˜¨λ‹€.

 

μž…λ ₯ν•œλ‹€.

 

 

#] svn mkdir svn://127.0.0.1/okkks.tistory.com/tags

 

 

#] svn mkdir svn://127.0.0.1/okkks.tistory.com/branches

 

 

 

 

 

 

 

디렉토리(trunk, tags, branches)κ°€ λ§Œλ“€μ–΄μ‘ŒλŠ”μ§€ 확인

]# svn list svn://127.0.0.1/okkks.tistory.com

branches/

tages/

trunk/

 



 

 

11. μ €μž₯μ†Œ μ‚­μ œ

 

 

μ‚­μ œν•  μ €μž₯μ†Œμ˜ λ””렉토리λ₯Ό μ‚­μ œν•˜λ©΄ λœλ‹€.

]# service svnserve stop

]# cd /svn

]# rm –rf okkks.tistory.com

]# ll

 

 




더 λ§Žμ€ 자료λ₯Ό μ›ν•œλ‹€λ©΄

좜처: http://okkks.tistory.com/986 [이건없지]

 

 

Contents

ν¬μŠ€νŒ… μ£Όμ†Œλ₯Ό λ³΅μ‚¬ν–ˆμŠ΅λ‹ˆλ‹€. 😊

이 글이 도움이 λ˜μ—ˆλ‹€λ©΄ 곡감 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€. πŸ‘