RadarURL

응용 프로그래밍
2016.02.06 01:39

[SVN] Subversion 명령들

조회 수 5983 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

 Subversion 에서 사용되는 기본적인 명령들을 알아보자.  IDE (통합 개발환경)을 사용하면 쉽게 사용할 수 
있는 기능들이지만 커맨드 사용법을 알아두면 유용하게 사용할 수 있다.  커맨드를 직접 사용해 보면 내부동작을
좀 더 쉽게  이해할 수 있으며 특히 자동화 스크립트를 작성할 때 도움이 된다.  
(소스관리 프로젝트를 위해 svn 명령을 사용할 경우와 svn 자바 라이브러리를 다룰 때도 도움이 된다. )

다음과 같은 순서로 Subversion 사용방법을 알아보겠다. 

1 저장소 생성
2 프로젝트 생성
3 프로젝트 저장소에 임포트(import)
4 작업본(working copy)  내려받기(checkout) 
5 woking copy에 파일 추가(add)
6 로컬 수정사항 커밋(commit)
7 저장소 변경사항 업데이트 받기 (update) 
8 브랜치/태그 (저장소 파일 복사/이동)
9 저장소 파일 삭제 
10 working copy 정보 보기




 

1. 저장소(Repository) 생성
가장 먼저 해야할 일은 저장소를 생성하는 작업이다. 저장소 생성에 관련된 내용은 지난 포스팅을 참고하기 바란다. 
svnadmin create --fs-type fsfs  MyRepository





2.  프로젝트 생성
이제 저장소에서 관리할 프로젝트를 위한 최초 디렉토리 구조를 로컬상에 생성한다. 
다음과 같은 구조로 "문서관리 시스템"을 위한 디렉토리 구조를 생성하였다. 
 

dms_프로젝트_구조.png

 






3. 프로젝트 저장소에 임포트(import) 
이제 로컬에 생성한 프로젝트를 저장소로 옮기자. 이 작업은 공유를 위한 프로젝트 최초 기본파일을 구성하는 단계이다. 
아래 명령으로 로컬 프로젝트 파일을 저장소로 복사한다. 
 
 svn import  -m "First DMS Project Import"  ./dms
저장소에 프로젝트 파일들이 옮겨졌기 때문에, 로컬 상에 있는 프로젝트 파일들을 삭제하자. 
이제 저장소에 있는 파일들이 모든 공유 문서들의 원본이 되고, 변경이 추가될 때마다 그 이력이 버전별로 관리가 된다. 




4. 작업본(working copy) 내려받기(checkout)
여러 사람이 저장소에 접근하여 산출물을 공유할 수 있게 되었다. 저장소에 있는 프로젝트 파일들을 
로컬상에 먼저 내려 받아보자.  로컬상에 자신이 다루게 되는 프로젝트 파일들을 작업본(working copy) 이라고 한다. 
작업본 내 모든 디렉토리에는 숨김파일 .subversion 이 생성되며 디렉토리 내 파일들의 목록과 수정사항들이 관리된다. 

 

svn checkout svn://repository_ip_address/MyRepository/trunk dms 

 

※ svn 명령들은 -r (revision) 옵션을 주어 아래와 같이 특정 리비전의 파일들을 다운 받을 수 있다. 
svn checkout -r  7 svn://repository_ip_address/MyRepository/trunk dms




 

5. 작업본에 파일 추가 (add) 
내려받은 작업본을 기반으로 자신이 담당한 모듈을 개발해 나가면 된다.  
새로운 파일을 작업본에 추가하고 싶은 경우,  새로운 파일을 생성하는 것만으로는 되지 않는다. 
작업본 파일목록에 명시적으로 새로 생성한 파일을 번영해 주어야 한다. 다음과 같은 명령을 사용한다. 
svn add build.xml




6. 로컬 변경사항 커밋 (commit)
작업본에 대한 모든 수정사항은 커밋을 해야 저장소에 반영이 된다.  파일 하나하나를 수정할 때마다 
커밋을 하는 것은 좋은 방법이 아니다.  에러가 발생하는 파일들을 저장소에 반영하면 업데이트를 받은 다른 팀웍들의
작업에도 영향을 주기 때문이다. 되도록이면 명확한 단위작업별로 구분하여 완전히 동작하는 수정사항만을 커밋하는
것이 좋다.  커밋을 할 때마다 -m 옵션으로 변경사항에 대한 메시지를 반드시 달아주어 변경에 대한 정보를 알수있게 하자
svn commit -m "Added build.xml ant file"




7 저장소 변경사항 업데이트 받기 (update) 
작업본 checkout 이후부터,  작업을 시작하기 전에 저장소 최신 변경사항을 update 받아 작업본을 최신버전으로
유지하는 것이 좋다. 저장소와 작업본 사이에 버전 차이가 커질 수록 나중에 commit이 충돌문제가 발생할 수 있기
때문이다.  다음 명령으로 저장송 변경사항을 작업본에 최신화시킨다. 
svn update




8 브랜치(branch)와 태그(tag) 
특정시점의 문서버전(예를 들어 1차 개발버전과 같은...)에 대한 복사본을 남겨두고 싶을 때 브랜치를  사용한다. 
브랜치를 사용하면 복사본이 생성되고,  이후 수정작업들은 다시 작업본에 계손 수정되어 나간다.   branch는 가지라는 뜻으로
현재 작업버전에 대해 분기점이 되는 버전이라는 의미를 갖는다.  태그는  브랜치와 비슷한 의미를 갖지만, 분기되어 
완전히 작업이 완료된 버전(첫번째 릴리지 버전과 같은...)이며  이름표를 달아서 알아보기 쉽게 표시를 한다. 
svn에서 브랜치와 태그를 생성하는 명령은 copy 로 동일하다.  태그 생성시는 t 옵션을 주어 이름표를 달아준다.

브랜치 생성 
 
svn mkdir -m "Create branch directory" svn://repository_ip_address/MyRepository/branches
 

svn copy -m "Creating release branch for 1.0"  svn://repository_ip_address/MyRepository/trunk  \
                                                                          svn://repository_ip_address/MyRepositorybranches/RB-1.0
 


태그 생성 
 
 svn mkdir -m "Create branch directory" svn://repository_ip_address/MyRepository/tags
 
svn copy -m "Tag release 1.0.0" svn://repository_ip_address/MyRepository/branches/RB-1.0 
                                                    svn://repository_ip_address/MyRepository/tags/REL-1.0.0
 




9. 저장소 파일 삭제 (delete)
저장소에 있는 파일을 삭제하는 명령은 다음과 같다. 파일 삭제후 update 를 수행하면 작업본에도 반영이 된다. 
 
svn delete -m  "Remove branch 1.0" svn://repository_ip_address/MyRepository/branches/RB-1.0 




10. working copy 정보보기 
다음명령으로 작업본 리비전 정보와 저장소 루트, 최신 수정일 등의 정보를 확인할 수 있다. 
svn info 
 

svn_info.png

 

 

출처 : http://hiddenviewer.tistory.com/94

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 2012434
2620 건강 카-툑 gusim8003 [24시문의] 선불유심내구제/내구제대출/소액대출/급전/ 비대면대출 상조내구제 무직자대출 대출 new 어설픈오소리22 2026.10.05 0
2619 하드웨어 강남엘리트❤️OlO-8655-OO53❤️친절문의24시 강남하퍼1등실장 #강남엘리트 #강남엘리트위치 #강남엘리트하퍼 #하이퍼블릭엘리트 #강남엘리트예약문의 #선릉엘리트 #선릉역엘리트 #강남사라있네 new 괴랄한재규어89 2026.10.05 0
2618 블로그 청담동셔츠룸 010 2817 0845 일정과 인원에 맞춘 셔츠룸 문의 new 정열적인퀘이사14 2026.10.05 0
2617 카메라 최근 테헤란로 벤처 밸리의 핵심 리더들 사이에서 ‘클래스가 다른 정통 수질과 프라이빗 무드’로 소문 자자한 '선릉 룸싸롱' 기습 방문, 인공미를 거부하는 무결점 뉴페이스들과 심장을 마비시킨 사심 플러팅에 제대로 저격당하고 온 솔직 후기 new 희미한홍학99 2026.10.05 0
2616 u-E(활성화) 본식DVD, 웨딩영상 색감이 중요한 이유새 창 열림 new 힘겨운귤35 2026.10.05 2
2615 공지 대전, 인천, 세종 하수구 막힘 문제 해결 방법 new 정열적인코요테90 2026.10.05 4
2614 취미 <문경맥주> 구입 할 수 있는 곳은 새 창 열림 new 타오르는드래곤61 2026.10.05 1
2613 데이터베이스 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리 new 괴랄한재규어89 2026.10.05 1
2612 사무 소프트웨어 용인두피문신 고민? 만족 후기 보려면 new 날카로운꿩11 2026.10.05 9
2611 논문 카­톡 gusim8003 급전/내구제 (24시문의) 폰테크 소액대출 선불폰 가개통 new 타오르는켄타우로스86 2026.10.05 1
2610 윈도우즈 웨딩누브라, 완벽한 드레스 핏을 위한 선택 new 날카로운감시자22 2026.10.05 5
2609 인터넷 성공적인 중고화물차 선택, 현명한 가이드 new 붉은드래곤50 2026.10.05 2
2608 가상화 인천맛집 순위 new 차가운파편97 2026.10.05 2
2607 응용 프로그래밍 완벽한 웨딩드레스 핏의 비밀, 웨딩누브라 new 힘겨운암석76 2026.10.05 2
2606 카메라 파주누수업체, 신속 해결 전문가의 비결 new 차가운에메랄드79 2026.10.05 1
2605 u-E(통합센터) 올해의 핫플 선정 간석동 마블! 010&&8923&&0291 교활한감시자99 2026.10.05 1
2604 웹서버,WAS 손목터널증후군 치료, 현명한 선택 기준은? 괴상한두루미52 2026.10.05 1
2603 u-E(통합센터) 손목터널증후군, 두팔로정형외과에서 해답을 찾다 눈부신백마법사86 2026.10.05 2
2602 응용 프로그래밍 골든타워 010 2817 0845 골타문의 편하게 알아보는 셔츠룸 속삭이는미노타우르93 2026.10.05 2
2601 u-E(TestBed) 특별한 기념품제작, 판촉물365 광기의태풍18 2026.10.05 1
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 131 Next
/ 131


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너