https://brufaganya.cat/2020/aab2vgkur
https://www.bufete-albanes.com/2023/09/20/y8wuphv
S U B V E R S I O N 의 소개와 간단한 사용법, Eclipse와의 연동
Subversion은 소프트웨어 버전 관리 시스템이다. 공동 작업을 할 때 한사람이 프로젝트를 진행 하는 것이 아니라 여러 사람이 큰 프로젝트 하나를 진행 하기 때문에 버전관리 시스템이 필요 하게 되었다.
– 버전 관리 프로그램의 장점
- 개발 버전과 릴리즈 버전이 섞이지 않게 관리 할 수 있다.
- 수정을 잘못 하였더라도 기록이 남고 되돌리기 쉽다.
- 수정, 추가, 삭제 등의 기록이 모두 남고 변경 사항을 추적 할수 있다.
- 개발자들이 따로 따로 백업을 하지 않아도 된다.
-
버전 관리 시스템의 용어
- 저장소 : 리포지토리(Repository)라고도 하며 모든 프로젝트의 프로그램 소스들은 이 저장소 안에 저장된다. 그리고 소스뿐만이 아니라 소스의 변경 사항도 모두 저장된 네트워크를 통해서 여러 사람이 접근 할 수 있다.
- 체크아웃 : 저장소에서 소르를 받아 오는것. 체크아웃을 한 소스를 보면 프로그램 소스가 아닌 다른 디렉토리와 파일들이 섞여 있는것을 볼 수 있는데. 그것들은 버전관리를 위한 파일들이다. 임의로 지우면 저장소와 연결이 되지 않으므로 주의.
- 커밋(Commit) : 체크아웃 한 소스를 수정, 파일 추가, 삭제 등을 한 뒤 저장소에 저장하여 갱신 하는 것. 커밋을 하면 전체 리비전이 1 증가 하게 된다.(Subversion)
- 업데이트(Update) : 체크아웃을 해서 소스를 가져 왔더라도 다른 사람이 커밋을 하였다면 소스가 달라 졌을 것이다. 이 경우 업데이트를 하여 저장소에 있는 최신의 소스를 가져 오는데, 물론 바뀐 부분만 가져 온다.
- 리버전(Revision) : 소스 파일등을 수정하여 커밋하게 되면 일정한 규칙에 의해 숫자가 증가 한다. Subversion에서는 각각의 파일 별로 리비전이 매겨지지 않고 한번 커밋(Commit) 할 때 마다 전체 리비전이 매겨 진다. 리비전을보고 전체 진행상황을 알 수 있다.
- 임포트(Import) : 아무것도 들어있지 않은 빈 저장소(Repository)에 처음 소스를 넣는 작업
- 익스포트(Export) : 체크아웃과 다르게 버전 관리 파일들을 제외한 순수한 파일을 받아 온다. (릴리즈 할 때 사용)
-
저장소 (Repository) 의 디렉토리 배치
-
저장소에 바로 소스를 넣어 프로젝트를 진행 할수 있으나, 버전 관리 시스템에서 권장하는 디렉 토리 배치 방법이 있다.
-
sample +–+—+- branches |
위의 구조가 보통 자주 사용되는 디렉토리 구조이다. 저장소 아래 branches, tags, trunk라는 3개의 디렉토리가 있고 각각의 용도를 가지고 있다.
- trunk : 프로젝트에서 가장 중심이 되는 디렉토리, 모든 개발 작업은 trunk 디렉토리에서 이루어 진다. 그래서 위 구조에서는 소스 파일들과 디렉토리가 들어감
- branches : 나무줄기 (trunk)에서 뻗어져 나온 나무 가지를 뜻합니다. trunk 디렉토리에서 프로그램을 개발하다 보면 큰 프로젝트에서 다른 작은 분류로 빼서 따로 개발해야 할 경우가 생긴다. 프로젝트 안의 작은 프로젝트라 생각 하자. Branches디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 작업한다.
- tags : 이 디렉토리는 프로그램을 개발하면서 정기적으로 릴리즈 할 때 0.1, 0.2, 1.0 하는 식으로 버전을 붙혀 발표하게 되는데 그때그때 발표한 소스를 따로 저장하는 공간이다. tag디렉토리 아래에는 버전명으로 디렉토리가 만들어져 있다.
https://www.grupoalliance.com/2023/09/20/lo4avib6z0 설치
권장 설치 순서 : Subversion → Eclipse → libsvn-javahl
이 문서에서는 Ubuntu 8.04 Hardy Heron을 기준으로 시냅틱 꾸러미 관리자를 이용한 간단한 설치 방법만을 다룬다.
SUBVERSION의 설치 (Ubuntu 8.04 Hardy Heron)
Subversion의 최신 소스파일, 의존성 소스는 http://subversion.tigris.org을 참조 한다.
Microsoft Windows에서의 사용은
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
의 설치 파일을 사용 한다.
시스템 > 관리 > 시냅틱 꾸러미 관리자 > 검색

검색어에 subversion 입력
subversion 과 subversion-tools를 설치 한다. (의존성 모두 설치)
subversion과 마찬가지로 시냅틱 패키지 관리자 → 검색 에서 “eclipse”
eclipse, eclipse-cdt 체크 후 설치 (의존성 모두 설치)
https://www.ibct-global.com/c7044pk libsvn-javahl 설치
역시 마찬 가지로 시냅틱 패키지 관리자 → 검색 에서 “libsvn-javah” 설치
(의존성 모두 설치)
https://www.ibericadron.com/lsv9mu2 Subversion 설정
작업한 소스를 저장할 공간을 만들어야 한다. 저장소 (Repository)는 프로젝트 하나마다 있어야 하고 저장소 안에 소스가 모들 들어가게 되며, 다른 프로젝트를 진행 한다면 다른 저장소를 만들어야 한다.
/home/svn 안에 저장소를 만들도록 하겠다. ( 꼭 이곳이 아니여도 되며 예를 든 것이다 )
# mkdir /home/svn # cd /home/svn/ /home/svn# svnadmin create –fs-type fsfs sample |
/home/svn/에 sample이라는 폴더가 생성 되었고 그 안에 몇가지 디렉토리와 파일이 보인다면 완성.
svn://로 작업을 하려면 시스템 계정을 만들어야 한다. 대부분 계정을 만들고 그룹을 하나로 묶는데 이럴 경우 그룹에 소속된 사용자들에게도 저장소 쓰기 권한을 주어야 한다. 그렇기 때문에 저장소의 그룹 권한을 조정해주어야 한다.
# chmod -R g+w sample |
Subversion 의 고유 프로토콜인 svn://을 이용할 수 있는 svnserve를 사용 하기 위해 설정을 한다.
svnserve로 서버를 실행 시키면 3690번 포트가 열린다.
sample 저장소가 /home/svn 아래에 있을 경우
# svnserve -d -r /home/svn/ |
이렇게 실행한뒤 테스트 하기 위해
“# svn checkout svn://(Subversion서버 IP또는 도메인)/sample sample” 을 입력 한다. “Checked out revision 0.”이 나오면 제대로 설정이 된 것이다. (자신의 계정 홈폴더에 sample이라는 폴더가 생성 되었을 것이다. 이곳으로 소스를 체크 아웃 해온것.)
이제부턴 아무나(Anonymous) 저장소에 접근해서 체크아웃, 커밋 등을 할 수 있다.
Tramadol Mexico Buy svnserve에서 ID로 사용자 인증
svnserve에서 ID로 사용자 인증이 가능하다. 저장소 디렉토리로 가보면 /conf 라는 디렉토리에 svnserve.conf파일과 passwd파일이 보일것잇다. 먼저 svnserve.conf파일을 열어 다음과 같이 수정하자. (앞에 주석 #이 붙어 있으면 다음 항목들은 주석을 제거하고 다음과 같이 값을 준다.)
anon-access = none (아무에게나 (Anonymous)저장소에 접근 막음) (아무나 쓰게 하려면 write) auth-access = write (ID로 인증된 사용자에게 쓰기 권한을 준다) password-db = passwd (password파일 이 안에 계정 정보가 들어 있다) realm = 원하는 이름 |
이제 계정을 만들기 위해 passwd파일을 열어 다음과 같이 수정한다.
[users] user_id = user_passwd |
user_id = 원하는 id, user_passwd = 해당하는 비밀번호를 넣는다. (주석을 반드시땔것)
https://prepnsell.com/blog/2023/09/20/uq2xewfe 기본 디렉토리 만들기
앞에서 설명 했던 trunk폴더를 만들어 보자
수월한 진행을 위해 시작 하기전에 저장소/conf/svnserve.conf파일의 다음 부분을 수정한다. (주석을 때는 것을 잊지말자.)
anon-access = none auth-access = write password-db = passwd realm = 원하는 이름 |
그 다음
# svn mkdir http://(Subversion 서버의 IP주소 또는 도메인)/sample/trunk |
을 입력하면 편집기로 들어가면서 다음과 같은 문구가 나온다.
–This line, and those below, will be ignored– A http://(Subversion 서버의 IP주소 또는 도메인)/sample/trunk |
여기서 그냥 빠져 나온후 c 를 입력하고 엔터를 치면 리비전이 올라가면서 디렉토리가 만들어 진다.
https://cafearabo.com/0k2w0nf475 Eclipse와 Subversion을 연동해서 사용 하기 (subclipse를 사용)
eclipse용 subversion 플러그인중 이 문서에서는 subclipse를 사용한 연동을 다룬다.
먼저 eclipse 실행후 메뉴에서 Help → Software Updates → Find and Install 선택
나타난 창에서 Search for new features to install 선택
다음 Install 창에서 New Remote Site 선택
새로운 Update Site를 추가 할수 있는데
그림과 같이 입력 Name : subclipse , URL : http://subclipse.tigris.org/update
정상적으로 추가된 경우 에러 메시지 없이 다음과 같이 subclipse가 추가 된다.
Subclipse에 체크 된 상태로 Finish후 몇번의 창을 넘긴다.
Next후 다음 창에서 Install All 을 선택하면 subclipse가 정상적으로 설치 되고
설치후 eclipse를 다시 시작 할 것인지 물어 보면 다시 시작 한다.
다시 시작된 eclipse에서 Window → Show View → Other 로 들어간다.
SVN이 추가 된것을 확인 할수 있다. SVN의 SVN Repository 를 선택
SVN Repository가 추가 된것을 볼 수있다.
Add SVN Repository 선택
나타나는 창에 Location에 앞서 만든 자신의 server를 등록한다.
좋은 정보 감사드립니다.
복받으세요~~~