mail3/에스브이엔

연습

psys 2020. 8. 26. 13:53
728x90

형상관리 툴 SVN(subversion)

? 형상관리 툴(SVN, GIT) 사용시 충돌 해결책임은 사용자에게 있음.
충돌발생한 파일이 다른 사람과 공동작업으로인한 소스내용이 다를 경우, 협의가 필요하다.
이 부분에 대해 툴은 완벽하지 못해서 가끔 트러블이 발생.

기본용어

  • Repository 저장소

  • Working copy 보통 작업사본이라 불림, 서버로 부터 가져온 소스디렉토리

  • Commit 작업내용을 commit하면 서버의 소스 버젼이 1개 올라감

필수 명령어

svn checkout ## 작업사본 만들기, 곧 저장소의 소스를 가져오기
svn update ## 서버에 업데이트된 내용이 있으면 내 작업사본을 업데이트하기
svn commit ## 내가 고친 내용을 저장소에 반영하기

SVN 특징

중앙 집중형 관리방식으로 관리서버가 다운되면 작업이 중지되어야 하는 단점이 있음.
작업사본(Working Copy) 디렉토리에는 .svn 폴더가 존재.

SVN 설치

## wevdav 프로토콜을 이용 아파치와 연동시키기 위한 라이브러리도 미리 설치
$ sudo apt install subversion subversion-tools libapache2-mod-svn
## 잘 설치되었는가 확인
$ svn --version
## 잘 설치되었는가 한번 더 확인
$ svnadmin help

SVN 저장소(repository)만 생성

# sudo svnadmin create [저장소경로] ## --fs-type fsfs

저장소(repository)에 폴더 추가

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

저장소(repository)에 추가한 폴더에 권한설정

 !  저장소(위의 경우 /home/svn/teamproj) 에 가보면 conf 디렉토리의 svnserve.conf 파일과 passwd 파일 수정

local방식 checkout

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

svnserve 사용 svn 서버 구동

$ sudo svnserve -d -r [저장소경로] ## -d는 데몬, -r은 server root 지정 옵션

svnserve 사용 checkout

$ svn checkout svn://도메인명/[svnserve 구동시 -r옵션 값 기준]/고유ID [주고싶은 폴더명]

update & commit

$ svn update $ svn commit -m "메세지"

특정버젼으로 되돌리기

$ svn update -r 버젼넘버

충돌 (conflict)

개발시 충돌 안나게 미리 파일및 작업분류를 잘 하는 것(정책결정)이 중요 충돌 발생시 선택사항

기본적으로 사용하게 되는 명령어

info
add
copy
delete
move
rename
status
log
diff
revert
resolve
export ## 버젼 history는빼고 소스만

 

실제 사용은 svnserve 서버보다는 Apache + WebDav를 이용 http를 이용하여 많이 사용
설치만 잘되면 사용이 훨씬 편리
서버라는 것이 설치 설정만 한번 잘 되면 잊고 살아도 됨.(사용자 입장에선 그렇고,유지관리 책임자는 다름)

'mail3 > 에스브이엔' 카테고리의 다른 글

트러블  (0) 2020.08.26
아파치  (0) 2020.08.26