본문 바로가기
Linux

SVN 서버 만들기 - Ubuntu 22.04

by IT너구리실장 2023. 11. 21.
반응형

subversion = SVN

Subversion 은 일반적으로 SVN 으로 불립니다.

소프트웨어 개발 프로젝트에서 버전 관리 시스템(VCS)으로 사용되는 오픈 소스 버전 관리 시스템입니다. Subversion은 코드의 변경 내역을 추적하고 여러 사용자 간에 작업을 조율하여 소프트웨어 개발 및 유지보수를 더 효과적으로 관리하는 데 도움을 줍니다.

 

SVN 특징은

중앙화된 버전 관리 시스템으로 협업에 용이합니다. 분기점(Branch) 생성으로 개별 라인으로 작업이 가능하고 개별적인 트랜잭션으로 안정적인 커밋이 가능합니다. 

HTTP, HTTPS, SVN 등 다양한 원격 액세스 프로토콜을 지원하고 오프라인 상태에서 로컬 작업이 가능합니다.

 


SVN 설치

Ubuntu 22.04 환경에서 apache2 웹서버와 연동하여 SVN 서버를 운영하는 방법으로 진행하겠습니다.

# 패키지 저장소 업데이트
sudo apt-get update

# apache2 웹 서버 설치
sudo apt-get install apache2 -y

# SVN 설치
sudo apt-get install subversion -y

# SVN-apache2 연동 모듈 설치
sudo apt-get install libapache2-mod-svn -y

 

모듈 활성화 하고 apache2 서비스를 재시작 하여 변경 내용을 적용합니다.

sudo a2enmod dav_svn

sudo service apache2 restart

SVN 저장소 생성

 

# 폴더 생성
sudo mkdir -p /share/svn

# SVN 저장소 생성
sudo svnadmin create /share/svn/repository

# 소유권한 및 접근 권한 설정
sudo chown -R www-data:www-data /share/svn
sudo chmod -R 775 /share/svn


사용자 생성

# 처음 생성시 -c 옵션 사용
sudo htpasswd -c /etc/apache2/dav_svn.passwd user1

 

svn 사용자 생성
생성된 유저는 비밀번호가 암호화 되어 저장


SVN 웹서버 모듈 설정

sudo vi /etc/apache2/mods-enabled/dav_svn.conf

 

# 서비스 재시작으로 변경사항 적용
sudo systemctl restart apache2

 

웹서버 접속하기

서버에서 로컬호스트로 접속

localhost/svn/repository

정상 작동 확인

방화벽 확인

# apache2 웹서버 포트확인
netstat -tnlp

# 방화벽 허용
sudo ufw allow 80/tcp

 

외부에서 접근

LAN 내의 클라이언트에서 서버 private ip로 접근
접속 확인

 

 

자세한 사용법은 아래 링크 참조

https://svnbook.red-bean.com/en/1.7/index.html


 

윈도우 환경에서 TortoiseSVN 사용하여 SVN 서버에 연동하기

 

https://tortoisesvn.net/downloads.html

 

Downloads · TortoiseSVN

download TortoiseSVN

tortoisesvn.net

자신의 OS 환경에 맞는 버전을 다운받아 설치합니다.

운영체제에 적합한 버전을 다운받아 설치하겠습니다.

 

설치가 끝나면 재부팅 버튼이 뜨는데 진행중인 작업을 정리하고 재부팅 진행해 주세요.

 

SVN 저장소 생성 및 서버 연동하기

저장소로 사용할 폴더 생성 및 우클릭 - TortoiseSVN - Checkout... Click!

 

서버에 설정한 경로 입력

설정한 유저 정보 입력

사용자 인증
연동 완료

작동 테스트

테스트 파일 만들어 보자

 

상위 폴더에서 우클릭 하여 Commit 진행

 

커밋 메시지 작성, 변경된 파일 체크 후 OK

 

 

완료 메시지 확인

 

 

웹으로 서버에 접속하면 커밋한 test.docx 가 확인된다.

 

파일 내용을 다시 변경해보자

 

다른 사용자와 함께 쓰고있다면 커밋하기전에 업데이트를 진행하여 SVN 서버의 변경사항을 반영해야 한다.

로그를 확인하여 변경내용 확인

 

로그 두개를 선택하여 변경내용 비교 확인 가능 Compare revisions 선택

더블클릭
비교 확인

 


SVN 사용자별 권한 설정 방법

https://it-racoon.tistory.com/19

 

SVN 저장소 권한 설정 ubuntu 22.04 (apache mod dav svn)

설치는 아래 링크 참조 https://it-racoon.tistory.com/16 SVN 서버 만들기 - Ubuntu 22.04 Subversion 은 일반적으로 SVN 으로 불립니다. 소프트웨어 개발 프로젝트에서 버전 관리 시스템(VCS)으로 사용되는 오픈 소

it-racoon.tistory.com

 

 


TortoiseSVN 자세한 사용법은 아래 공식문서 링크 참조

https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug.html

 

Chapter 4. Daily Use Guide

Some common operations have well-known Windows shortcuts, but do not appear on buttons or in menus. If you can't work out how to do something obvious, like refreshing a view, check here. F1 Help, of course. F5 Refresh the current view. This is perhaps the

tortoisesvn.net

 

반응형