SVN(Subversion)은 소프트웨어 개발 프로젝트에서 사용되는 버전 관리 시스템.
주요 특징:
- 중앙집중식 버전관리: SVN은 중앙 서버에 모든 버전 정보를 저장하고 관리합니다.
- 디렉터리 구조: Trunk(주요 개발), Branches(분기 개발), Tags(릴리스 버전 보관)로 구분하여 프로젝트를 관리합니다.
- 주요 기능:
- 파일 및 디렉터리의 버전 관리
- 이전 상태로의 복원 가능
- 변경 사항 추적 및 비교
- 여러 개발자의 협업 지원
- 명령어: checkout(소스 다운로드), update(최신 소스 갱신), commit(변경 사항 반영), merge(충돌 해결) 등의 기능을 제공합니다.
SVN은 CVS(Concurrent Versions System)의 한계를 극복하기 위해 2000년에 개발이 시작되었으며, 2001년에 첫 버전이 공개되었습니다.
현재는 Git과 같은 분산 버전 관리 시스템에 비해 사용 빈도가 줄어들었지만, 여전히 많은 프로젝트에서 사용되고 있습니다.
1. 참고 사이트
2. 설치 (yum 설치시 selinux 해제 해야 함)
yum install subversion
3. 설치 – 소스 (권장, 아파치와 유사함)
yum -y install wget gcc gcc-c++ pcre-devel openssl-devel zlib-devel expat-devel
wget http://apache.tt.co.kr/apr/apr-1.7.0.tar.gz
wget http://apache.tt.co.kr/apr/apr-util-1.6.1.tar.gz
wget http://mirror.apache-kr.org/apache/apr/apr-iconv-1.2.2.tar.gz
wget https://sourceforge.net/projects/pcre/files/pcre/8.44/pcre-8.44.tar.gz
wget http://zlib.net/zlib-1.2.11.tar.gz
wget https://www.sqlite.org/2021/sqlite-autoconf-3350200.tar.gz
wget http://apache.tt.co.kr/subversion/subversion-1.14.1.tar.gz
yum -y install wget gcc gcc-c++ pcre-devel openssl-devel zlib-devel expat-devel
## apr
./configure --prefix=/usr/local/apr
cp libtool libtoolT
make
make install
## apr-util
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make
make install
## apr-iconv
./configure --prefix=/usr/local/apr-iconv --with-apr=/usr/local/apr
make
make install
## pcre
./configure --libdir=/usr/local/lib64
make
make install
## zlib
./configure --with-apr=/usr/local/apr
make
make install
## subversion
./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-lz4=internal --with-utf8proc=internal
make
make install
4. 환경 설정
/etc/sysconfig/svnserve
#OPTIONS="--threads --root /data/svn/repos --listen-port 9993 --compression 2 --memory-cache-size 4096 --log-file=/home/babasvn/svn_repository.log"
#OPTIONS="--threads --root /data/svn/repos --listen-port 9993"
OPTIONS="--threads --root /data/svn/repos --listen-port 9993 --memory-cache-size 4096 --log-file=/home/babasvn/svn_repository.log"
5. 사전작업 (pid / log 정보 폴더)
PID 폴더
mkdir -p /var/lib/svnserve_pid; chown babasvn.babasvn /var/lib/svnserve_pid
로그 폴더
mkdir /var/log/svnserve
chown babasvn.babasvn /var/log/svnserve/
6. 데몬 파일
vi /usr/lib/systemd/system/svnserve.service
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
ExecStart=/usr/local/bin/svnserve --daemon --pid-file=/var/lib/svnserve_pid/svnserve.pid $OPTIONS
ExecStop=ps -ef|grep svn|grep -v grep|kill -9 `awk '{print $2}'`
KillMode=process
#Restart=on-failure
Restart=no
StartLimitBurst=3
StartLimitInterval=60s
User=babasvn
Group=babasvn
UMask=0007
RestartSec=10
#Restart=always
Restart=no
[Install]
WantedBy=multi-user.target
7. 데몬 설정
systemctl enable svnserve.service
systemctl daemon-reload
ps –ef |grep svnserve
babasvn 11796 1 0 Jul27 ? 00:01:17 /usr/local/bin/svnserve --daemon --pid-file=/var/lib/svnserve_pid/svnserve.pid --threads --root /data/svn/repos --listen-port 9993 --memory-cache-size 4096 --log-file=/home/babasvn/svn_repository.log
8. 설정
# svn 전용 계정 생성 --> svn 계정 관리만 함
# 프로젝트 생성
svnadmin create --fs-type fsfs /data/svn/repos
svn mkdir svn://test.com/trunk -m 'project' --username 'user' --password 'password'
svn mkdir svn://test.com/brunches -m ' project ' --username 'user' --password 'password'
svn mkdir svn://test.com/trunk -m ' project ' --username 'user' --password 'password'
'
svn mkdir svn://test.com/brunches -m ' project ' --username 'user' --password 'password'
9. import
svn import대상 directory_root_name svn://localhost/sample/trunk
svn propset svn:ignore -F svnignore.txt /www/repos/test.com
svn proplist -v test.com
10. 로그 로테이트 등록 (?)
vi /etc/logrotate.d/svnserve
/var/log/svnserve/*.log {
daily
missingok
rotate 14
compress
notifempty
create 640 svn adm
sharedscripts
postrotate
if /bin/systemctl status svnserve > /dev/null ; then \
/bin/systemctl restart svnserve > /dev/null; \
fi;
endscript
}
10
'Linux' 카테고리의 다른 글
Denyhost 설치 (0) | 2025.03.11 |
---|---|
JenKins 설치 (1) | 2025.03.11 |
Log 일일백업 script (0) | 2025.03.11 |
일일백업 script (0) | 2025.03.11 |
Softether VPN (0) | 2025.03.11 |