상세 컨텐츠

본문 제목

SVN(Subversion) 알아볼까낭

리눅스(우분투)

by e7e 2022. 5. 4. 08:29

본문

sudo apt install subversion subversion-tools
svn --version
svnadmin help

sudo svnadmin create [저장소경로]
sudo svn import [추가하고픈 경로] file:///[저장소경로]/고유ID  -m [커밋메세지]  
## file 다음에 /가 3개 주의


svn checkout file:///[저장소경로]/고유ID [주고싶은 폴더명]

sudo svnserve -d -r [저장소경로] ## -d는 데몬, -r은 server root 지정 옵션
svn checkout svn://도메인명/[svnserve 구동시 -r옵션 값 기준]/고유ID [주고싶은 폴더명]

svn update
svn commit -m "message"



svn update -r 버젼넘버
svn add
svn delete
svn status
svn log
svn resolve

apache와 svn 연동 (실제 이 방식을 훨씬 더 많이 사용)

## OS 업데이트
$ sudo apt update
## OS 업그레이드
$ sudo apt upgrade 
## 아파치2 웹서버 & 유틸 설치
$ sudo apt install apache2 apache2-utils
## 아파치2 서버 시작
$ sudo service apache2 start
## http://localhost 확인, home 디렉토리는 /var/www/html

## 서브버젼및 아파치와 연결시킬 라이브러리 설치, 초간단 
$ sudo apt install subversion subversion-tools libapache2-mod-svn
## 잘 설치 되었는지 괜히 한번 버젼 확인
$ svn --version

## SVN 설정
## 임의로 /home 디렉토리 아래 svn 폴더 생성
$ sudo mkdir /home/svn
## /home/svn 아래 teamproj라는 저장소(repository)생성
$ sudo svnadmin create /home/svn/teamproj
## 아파치 웹 서버가 폴더에 접근 가능토록 소유자/그룹 변경
$ sudo chown -R www-data:www-data /home/svn/teamproj


### SVN 설정
### 즐겨 사용하시는 에디터(xed?, vi?)를 이용하여
### /etc/apache2/mods-enabled/dav_svn.conf(사실 이건 link 파일)를 아래 내용으로 만듭니다.
### SVNParentPath /home/svn 라인의 경로 설정 의미에 주목하세요
<Location /svn>
 DAV svn
 SVNParentPath /home/svn
 AuthType Basic
 AuthName "Subversion Repository"
 AuthUserFile /etc/apache2/dav_svn.passwd
 Require valid-user
</Location>

## svn 모듈 활성화
 sudo a2enmod dav_svn
 
## 사용자 등록
 $ sudo htpasswd -cm /etc/apache2/dav_svn.passwd test
## 암호를 물어오면 원하는 암호를 지정해줍니다.
## 유저를 여러명 추가하는 경우, 2번째 부터는 -cm이 아니고 -m 옵션을 사용합니다.(**주의**)
## 계속 -cm 옵션을 추가하면 덮어 써 버리기 때문에 마지막 추가한 사용자 1명만 남습니다.!!
## 에디터로 /etc/apache2/dav_svn.passwd 파일을 열어보면 느낌이 확 옵니다
 
 
## 아파치 서버를 재기동 시킵니다.
$ sudo service apache2 restart

## http://localhost/svn/teamproj  눈으로 확인


## apache svn 서버 동작 확인
## 홈 디렉토리(폴더)에 테스트를 위해서 임의로 svntest란 폴더를 만듭니다.
$ cd  ## 홈으로 이동 
$ mkdir svntest ## 디렉토리 생성
 
## svn checkout 암것도 없으니 checked out revision 0가 나올겁니다
$ svn checkout http://컴퓨터ip/svn/teamproj --username test svntest
 
## svntest 폴더로 가서 파일을 만들어 보아요
$ cd svntest
$ echo "This is first file" > sourcefile1.txt
$ echo "This is second file" > sourcefile2.txt
 
## 위에서 생성한 파일을 commit하기 위해 add 시킵니다
$ svn add source*.txt
 
## 추가 되었다는 출력을 확인한 뒤에 commit을 합니다.
$ svn commit -m "This is Revision 1"

관련글 더보기