Install Subversion on Ubuntu - II
페이지 정보
본문
안녕하세요.
꿈꾸는여행자입니다.
기존 Install Subversion on Ubuntu - I
내용에 계속된, Subversion 설정 관련된 내용입니다.
상세 내역은 아래와 같습니다.
감사합니다.
> 아래
________________
목차
2.5. SVN service 등록 6
2.5.1. /etc/init.d/svnserve 파일 작성 6
2.5.2. 파일 권한 설정 및 Service 등록 8
2.6. SVN 기동 및 중지 9
3. Subversion CLI 11
X. Reference 12
X.1. Url 12
2.5. SVN service 등록
2.5.1. /etc/init.d/svnserve 파일 작성
* 서버가 시작될때 자동으로 서비스가 기동할수 있도록 Service에 등록 합니다. /etc/init.d 로 가서 svnserve라는 파일을 서비스로 등록합니다.
* 다음과 같이 실행합니다.
* sudo vim /etc/ini.d/svnserve
#! /bin/sh
### BEGIN INIT INFO
# Provides: svnserve
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start svnserve
### END INIT INFO
# Author: Michal Wojciechowski <odyniec@odyniec.net>
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="svnserve"
NAME=svnserve
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -r /home/svn/"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
[ -x "$DAEMON" ] || exit 0
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_start()
{
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
}
do_stop()
{
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
rm -f $PIDFILE
return "$RETVAL"
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
* * Script 설명 내역
* 본인이 리포지토리를 생성한 폴더 경로를 확인하여 DAEMON_ARGS="-d -r /home/svn/" 내역에 설정합니다.
2.5.2. 파일 권한 설정 및 Service 등록
* 다음과 같이 실행합니다.
* # 권한 설정과 서버 재시작 후 자동 실행하도록 설정
sudo chmod +x /etc/init.d/svnserve
sudo update-rc.d svnserve defaults
# service 등록한 명령어 갱신
sudo systemctl daemon-reload
root@devops-jenkins:/etc/init.d# sudo chmod +x /etc/init.d/svnserve
root@devops-jenkins:/etc/init.d# sudo update-rc.d svnserve defaults
root@devops-jenkins:/etc/init.d# sudo systemctl daemon-reload
root@devops-jenkins:/etc/init.d#
*
2.6. SVN 기동 및 중지
* 다음과 같이 실행합니다.
* #시작
sudo systemctl start svnserve.service
#상태확인
sudo systemctl status svnserve.service
#중지
sudo systemctl stop svnserve.service
#재시작
sudo systemctl restart svnserve.service
root@devops-jenkins:~/work/svn_test/repos# sudo systemctl status svnserve.service
● svnserve.service - LSB: Start svnserve
Loaded: loaded (/etc/init.d/svnserve; generated)
Active: active (running) since Tue 2023-12-12 00:56:41 UTC; 59min ago
Docs: man:systemd-sysv-generator(8)
Process: 147179 ExecStart=/etc/init.d/svnserve start (code=exited, status=0>
Tasks: 1 (limit: 9516)
Memory: 960.0K
CGroup: /system.slice/svnserve.service
└─147186 /usr/bin/svnserve -d -r /home/svn/
Dec 12 00:56:41 devops-jenkins systemd[1]: Starting LSB: Start svnserve...
Dec 12 00:56:41 devops-jenkins svnserve[147185]: DIGEST-MD5 common mech free
Dec 12 00:56:41 devops-jenkins systemd[1]: Started LSB: Start svnserve.
Dec 12 01:01:58 devops-jenkins svnserve[147368]: DIGEST-MD5 common mech free
Dec 12 01:08:53 devops-jenkins svnserve[147538]: DIGEST-MD5 common mech free
Dec 12 01:10:25 devops-jenkins svnserve[147593]: DIGEST-MD5 common mech free
Dec 12 01:11:23 devops-jenkins svnserve[147618]: DIGEST-MD5 common mech free
Dec 12 01:13:06 devops-jenkins svnserve[147665]: DIGEST-MD5 common mech free
Dec 12 01:14:00 devops-jenkins svnserve[147691]: DIGEST-MD5 common mech free
Dec 12 01:14:04 devops-jenkins svnserve[147697]: DIGEST-MD5 common mech free
root@devops-jenkins:~/work/svn_test/repos#
*
________________
3. Subversion Command
3.1. 설치 확인 - svn cli
* 다음과 같이 실행합니다.
* svn --version
*
3.2. 소스 가져 오기 - Checkout
* 다음과 같이 실행합니다.
* svn checkout \
--username USERNAME \
--password PASSWORD \
svn://SVN_IP/SVN_REPOSITORY
root@devops-jenkins:~/work/svn_test# svn checkout $SVN_REPO_URL $SVN_CHECKOUT_DIR
Authentication realm: <svn://localhost:3690> 5ace4345-9374-4b2d-aa18-c3cc8cb5f133
Password for 'user01': ********
A svn_repos/file01.txt
A svn_repos/file02.txt
Checked out revision 2.
root@devops-jenkins:~/work/svn_test# tree
.
└── svn_repos
├── file01.txt
└── file02.txt
1 directory, 2 files
root@devops-jenkins:~/work/svn_test#
*
3.3. 소스 업데이트 - Update
* 다음과 같이 실행합니다.
* svn update
*
3.4. 소스 업로드
* 파일을 추가합니다.
* mkdir project01 project02
cd project01/
touch file01.txt file02.txt
root@devops-jenkins:~/work/svn_test/repos# mkdir project02
root@devops-jenkins:~/work/svn_test/repos# cd project01/
root@devops-jenkins:~/work/svn_test/repos/project01# touch file01.txt
root@devops-jenkins:~/work/svn_test/repos/project01# touch file02.txt
root@devops-jenkins:~/work/svn_test/repos/project01# cd ..
* * 다음과 같이 실행합니다.
* svn status
svn update
svn add * --force
svn commit -m ‘Create file and Directory’
root@devops-jenkins:~/work/svn_test/repos# svn status
? project01/file01.txt
? project01/file02.txt
A project02
root@devops-jenkins:~/work/svn_test/repos#
root@devops-jenkins:~/work/svn_test/repos# svn update
Updating '.':
Authentication realm: <svn://localhost:3690> 5ace4345-9374-4b2d-aa18-c3cc8cb5f133
Password for 'user01': ********
At revision 1.
root@devops-jenkins:~/work/svn_test/repos#
root@devops-jenkins:~/work/svn_test/repos# svn add * --force
A project01/file01.txt
A project01/file02.txt
root@devops-jenkins:~/work/svn_test/repos#
root@devops-jenkins:~/work/svn_test/repos# svn status
A project01/file01.txt
A project01/file02.txt
A project02
root@devops-jenkins:~/work/svn_test/repos#
root@devops-jenkins:~/work/svn_test/repos# svn commit -m "Create file and directory"
Authentication realm: <svn://localhost:3690> 5ace4345-9374-4b2d-aa18-c3cc8cb5f133
Password for 'user01': ********
Adding project01/file01.txt
Adding project01/file02.txt
Adding project02
Transmitting file data ..done
Committing transaction...
Committed revision 2.
root@devops-jenkins:~/work/svn_test/repos#
*
3.5. Revision 정보 확인
* 다음과 같이 실행합니다.
* svn info
root@devops-jenkins:~/work/svn_test/repos# svn info
Path: .
Working Copy Root Path: /root/work/svn_test/repos
URL: svn://localhost/repos
Relative URL: ^/
Repository Root: svn://localhost/repos
Repository UUID: 5ace4345-9374-4b2d-aa18-c3cc8cb5f133
Revision: 1
Node Kind: directory
Schedule: normal
Last Changed Author: user01
Last Changed Rev: 1
Last Changed Date: 2023-12-12 01:08:53 +0000 (Tue, 12 Dec 2023)
root@devops-jenkins:~/work/svn_test/repos#
* ________________
X. Reference
X.1. Url
* Subversion - Install
* [Linux] Ubuntu SVN 설정 - Ubuntu 22.0.4 LTS
* https://velog.io/@xangj0ng/Linux-Ubuntu-SVN-%EC%84%A4%EC%A0%95
* [Subversion] Ubuntu에 svn 설치하기
* https://dejavuqa.tistory.com/12
* [Ubuntu] 우분투 SVN Server 설치 ( subversion )
* https://bab-dev-study.tistory.com/26
* Subversion - CLI
* SVN CLI 사용 방법
* https://wiki.tistory.com/entry/SVN-%EC%BB%A4%EB%A7%A8%EB%93%9C-%EA%B8%B0%EB%B0%98-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95
* Subversion - Info
* What Is Subversion?
* https://svnbook.red-bean.com/en/1.8/svn.intro.whatis.html
꿈꾸는여행자입니다.
기존 Install Subversion on Ubuntu - I
내용에 계속된, Subversion 설정 관련된 내용입니다.
상세 내역은 아래와 같습니다.
감사합니다.
> 아래
________________
목차
2.5. SVN service 등록 6
2.5.1. /etc/init.d/svnserve 파일 작성 6
2.5.2. 파일 권한 설정 및 Service 등록 8
2.6. SVN 기동 및 중지 9
3. Subversion CLI 11
X. Reference 12
X.1. Url 12
2.5. SVN service 등록
2.5.1. /etc/init.d/svnserve 파일 작성
* 서버가 시작될때 자동으로 서비스가 기동할수 있도록 Service에 등록 합니다. /etc/init.d 로 가서 svnserve라는 파일을 서비스로 등록합니다.
* 다음과 같이 실행합니다.
* sudo vim /etc/ini.d/svnserve
#! /bin/sh
### BEGIN INIT INFO
# Provides: svnserve
# Required-Start: $local_fs $syslog $remote_fs
# Required-Stop: $local_fs $syslog $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start svnserve
### END INIT INFO
# Author: Michal Wojciechowski <odyniec@odyniec.net>
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="svnserve"
NAME=svnserve
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -r /home/svn/"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
[ -x "$DAEMON" ] || exit 0
[ -r /etc/default/$NAME ] && . /etc/default/$NAME
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_start()
{
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
$DAEMON_ARGS \
|| return 2
}
do_stop()
{
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
[ "$?" = 2 ] && return 2
rm -f $PIDFILE
return "$RETVAL"
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
exit 0
* * Script 설명 내역
* 본인이 리포지토리를 생성한 폴더 경로를 확인하여 DAEMON_ARGS="-d -r /home/svn/" 내역에 설정합니다.
2.5.2. 파일 권한 설정 및 Service 등록
* 다음과 같이 실행합니다.
* # 권한 설정과 서버 재시작 후 자동 실행하도록 설정
sudo chmod +x /etc/init.d/svnserve
sudo update-rc.d svnserve defaults
# service 등록한 명령어 갱신
sudo systemctl daemon-reload
root@devops-jenkins:/etc/init.d# sudo chmod +x /etc/init.d/svnserve
root@devops-jenkins:/etc/init.d# sudo update-rc.d svnserve defaults
root@devops-jenkins:/etc/init.d# sudo systemctl daemon-reload
root@devops-jenkins:/etc/init.d#
*
2.6. SVN 기동 및 중지
* 다음과 같이 실행합니다.
* #시작
sudo systemctl start svnserve.service
#상태확인
sudo systemctl status svnserve.service
#중지
sudo systemctl stop svnserve.service
#재시작
sudo systemctl restart svnserve.service
root@devops-jenkins:~/work/svn_test/repos# sudo systemctl status svnserve.service
● svnserve.service - LSB: Start svnserve
Loaded: loaded (/etc/init.d/svnserve; generated)
Active: active (running) since Tue 2023-12-12 00:56:41 UTC; 59min ago
Docs: man:systemd-sysv-generator(8)
Process: 147179 ExecStart=/etc/init.d/svnserve start (code=exited, status=0>
Tasks: 1 (limit: 9516)
Memory: 960.0K
CGroup: /system.slice/svnserve.service
└─147186 /usr/bin/svnserve -d -r /home/svn/
Dec 12 00:56:41 devops-jenkins systemd[1]: Starting LSB: Start svnserve...
Dec 12 00:56:41 devops-jenkins svnserve[147185]: DIGEST-MD5 common mech free
Dec 12 00:56:41 devops-jenkins systemd[1]: Started LSB: Start svnserve.
Dec 12 01:01:58 devops-jenkins svnserve[147368]: DIGEST-MD5 common mech free
Dec 12 01:08:53 devops-jenkins svnserve[147538]: DIGEST-MD5 common mech free
Dec 12 01:10:25 devops-jenkins svnserve[147593]: DIGEST-MD5 common mech free
Dec 12 01:11:23 devops-jenkins svnserve[147618]: DIGEST-MD5 common mech free
Dec 12 01:13:06 devops-jenkins svnserve[147665]: DIGEST-MD5 common mech free
Dec 12 01:14:00 devops-jenkins svnserve[147691]: DIGEST-MD5 common mech free
Dec 12 01:14:04 devops-jenkins svnserve[147697]: DIGEST-MD5 common mech free
root@devops-jenkins:~/work/svn_test/repos#
*
________________
3. Subversion Command
3.1. 설치 확인 - svn cli
* 다음과 같이 실행합니다.
* svn --version
*
3.2. 소스 가져 오기 - Checkout
* 다음과 같이 실행합니다.
* svn checkout \
--username USERNAME \
--password PASSWORD \
svn://SVN_IP/SVN_REPOSITORY
root@devops-jenkins:~/work/svn_test# svn checkout $SVN_REPO_URL $SVN_CHECKOUT_DIR
Authentication realm: <svn://localhost:3690> 5ace4345-9374-4b2d-aa18-c3cc8cb5f133
Password for 'user01': ********
A svn_repos/file01.txt
A svn_repos/file02.txt
Checked out revision 2.
root@devops-jenkins:~/work/svn_test# tree
.
└── svn_repos
├── file01.txt
└── file02.txt
1 directory, 2 files
root@devops-jenkins:~/work/svn_test#
*
3.3. 소스 업데이트 - Update
* 다음과 같이 실행합니다.
* svn update
*
3.4. 소스 업로드
* 파일을 추가합니다.
* mkdir project01 project02
cd project01/
touch file01.txt file02.txt
root@devops-jenkins:~/work/svn_test/repos# mkdir project02
root@devops-jenkins:~/work/svn_test/repos# cd project01/
root@devops-jenkins:~/work/svn_test/repos/project01# touch file01.txt
root@devops-jenkins:~/work/svn_test/repos/project01# touch file02.txt
root@devops-jenkins:~/work/svn_test/repos/project01# cd ..
* * 다음과 같이 실행합니다.
* svn status
svn update
svn add * --force
svn commit -m ‘Create file and Directory’
root@devops-jenkins:~/work/svn_test/repos# svn status
? project01/file01.txt
? project01/file02.txt
A project02
root@devops-jenkins:~/work/svn_test/repos#
root@devops-jenkins:~/work/svn_test/repos# svn update
Updating '.':
Authentication realm: <svn://localhost:3690> 5ace4345-9374-4b2d-aa18-c3cc8cb5f133
Password for 'user01': ********
At revision 1.
root@devops-jenkins:~/work/svn_test/repos#
root@devops-jenkins:~/work/svn_test/repos# svn add * --force
A project01/file01.txt
A project01/file02.txt
root@devops-jenkins:~/work/svn_test/repos#
root@devops-jenkins:~/work/svn_test/repos# svn status
A project01/file01.txt
A project01/file02.txt
A project02
root@devops-jenkins:~/work/svn_test/repos#
root@devops-jenkins:~/work/svn_test/repos# svn commit -m "Create file and directory"
Authentication realm: <svn://localhost:3690> 5ace4345-9374-4b2d-aa18-c3cc8cb5f133
Password for 'user01': ********
Adding project01/file01.txt
Adding project01/file02.txt
Adding project02
Transmitting file data ..done
Committing transaction...
Committed revision 2.
root@devops-jenkins:~/work/svn_test/repos#
*
3.5. Revision 정보 확인
* 다음과 같이 실행합니다.
* svn info
root@devops-jenkins:~/work/svn_test/repos# svn info
Path: .
Working Copy Root Path: /root/work/svn_test/repos
URL: svn://localhost/repos
Relative URL: ^/
Repository Root: svn://localhost/repos
Repository UUID: 5ace4345-9374-4b2d-aa18-c3cc8cb5f133
Revision: 1
Node Kind: directory
Schedule: normal
Last Changed Author: user01
Last Changed Rev: 1
Last Changed Date: 2023-12-12 01:08:53 +0000 (Tue, 12 Dec 2023)
root@devops-jenkins:~/work/svn_test/repos#
* ________________
X. Reference
X.1. Url
* Subversion - Install
* [Linux] Ubuntu SVN 설정 - Ubuntu 22.0.4 LTS
* https://velog.io/@xangj0ng/Linux-Ubuntu-SVN-%EC%84%A4%EC%A0%95
* [Subversion] Ubuntu에 svn 설치하기
* https://dejavuqa.tistory.com/12
* [Ubuntu] 우분투 SVN Server 설치 ( subversion )
* https://bab-dev-study.tistory.com/26
* Subversion - CLI
* SVN CLI 사용 방법
* https://wiki.tistory.com/entry/SVN-%EC%BB%A4%EB%A7%A8%EB%93%9C-%EA%B8%B0%EB%B0%98-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95
* Subversion - Info
* What Is Subversion?
* https://svnbook.red-bean.com/en/1.8/svn.intro.whatis.html
- 이전글GITLAB 머지시 충돌 해결 방법 24.03.08
- 다음글SVN To Gitalb 마이그레이션 24.01.14
댓글목록
throne님의 댓글
throne 작성일<스팸으로 인한 삭제>
throne님의 댓글
throne 작성일<스팸으로 인한 삭제>