관심노트로등록 09 서브버전 (Subversion) 윈도우서버설치편집하기 온갖자료가난무하는 kkamagui 의 Springnote~!!! 167 모든페이지 kkamagui 의작업실 최근페이지 00 KKAMAGUI 소개 00 포트폴리오 (Portfolio) 01 OS 및 OS 프레임워크 02 NDS 및 ARM 03 File System 04 PSP 및 MIPS 05 안드로이드 (Android) 07 리눅스프로그래밍 08 윈도우시스템프로그래밍 09 파이썬 (Python) 프로그래 10 웹 (Web) 프로그래밍 100 TODO 11 DB(Database) 프로그래밍 12 루비 (Ruby) 프로그래밍 13 Git 사용법 20 프로그래밍팁 00 윈도우프로그래밍팁 01 웹프로그래밍 02 간단한 Make 사용법 03 스프링노트를활용한 04 윈도우콘솔 (console) 05 VC 6.0 으로유니코드 06 이클립스 (Eclipse) CD 07 이클립스 (Eclipse) 단 08 BSD 소켓프로그래밍 09 서브버전 ( Subversi 10 C 언어고급매크로기 11 괜찮은기술문서모음 12 문자셋 (Character Se 13 C/C++ 로플러그인프 15 이클립스 (Eclipse) 컬 16 VI 관련 90 데이터베이스이론 99 윈도우사용팁 21 자작유틸및라이브러리 22 괜찮은툴및라이브러리 23 윈도우사용팁 30 해킹 / 보안 50 Code Complete 80 스프링노트, 블로그사용 91 스프링노트주소모음 97 자세교정 99 기타 99 방명록 Memo 검색 09 서브버전 (Subversion) 윈도우서버설치 원문 : http:/ / kkam agui.springnote.com / pages / 585605 들어가기전에... 이글은 kkam agui 에의해작성된글입니다. 마음껏인용하시거나사용하셔도됩니다. 단출처 ( http:/ / kkam agui.tistory.com, http:/ / kkam agui.springnote.com ) 는밝혀주십시오. 기타사항은 m int64os at gm ail.com 이나 http:/ / kkam agui.tistory.com 으로보내주시면반영하겠습니다. OS 제작에대한상세한내용은책 "64비트멀티코어 OS 원리와구조 " 를참고하기바랍니다. 0. 시작하면서... 개발자라면한번쯤소스관리에대해서고민해봤을것이다. 특히나수정이잦은프로그램이라면더욱더버전관리가중요한데, 이걸일일이폴더나날짜별로관리하다가는낭패를보기십상이다. 그래서버전관리프로그램을사용하는데, 대표적인것으로소스세이프 (Source Safe), CVS, Subversion 있다. 윈도우프로그래머라면소스세이프가굉장히유용한데 (Visual Studio를설치하면자동으로깔리므로... ㅡ _ ㅡa..), 사용해보니속도가무지느리고 VC 또한한참뒤에뜨게하는무시무시한단점이있어서다른것을찾다가서브버전을선택하게되었다. 서브버전의장점은인터넷에잘나오므로굳이이야기하지않겠고, 실제윈도우버전설치및설정에대해서알아보자. 1.Tortoise 서브버전 (Subversion) 클라이언트설치 1.1 Tortoise 서브버전 (Subversion) 클라이언트다운로드 서브버전서버를설치한다면서왜클라이언트를설치하는것일까? 그것은서버설치후나머지작업을편리하게할수있기때문이다. 서브버전클라이언트는 http:/ / tortois es vn.net/ dow nloads 에서다운받을수있다. 1/11
<T ortoise 서브버전클라이언트 > 1.2 Tortoise 서브버전 (Subversion) 클라이언트설치 클라이언트설치는간단하다. 무조건 "N ex t" 버튼을눌러서완료를하면알아서다해준다. <T ortoise 서브버전 ( Subversion) 클라이언트설치 > 설치후탐색기에서오른쪽버튼을클릭했을때아래와같은메뉴가뜨면정상적으로설치된것이다. 2/11
< 설치완료 > 2. 서브버전 (Subversion) 서버설치 2.1 서브버전 (Subversion) 서버다운로드 서브버전의윈도우용설치파일은 http:/ / subversion.tigris.org/ servlets / ProjectDocum entlist?folderid=91 에서찾을수있다. 위사이트로이동하면아래와같은화면을볼수있는데, 최신버전의설치파일을다운받아서설치하도록하자. < 서브버전서버파일다운로드 > 2.2 서브버전 (Subversion) 설치 설치과정은아주간단하다. 윈도우인스톨파일을더블클릭해서기본옵션으로설치하면된다. "Next" 를계속해서클릭하여완료 하자. 3/11
< 인스톨화면 > 2.3 서브버전 (Subversion) 설정 2.3.1 서브버전 (Subversion) 데이터폴더생성 (Repository) 서버설치가끝났으니데이터를저장할폴더를생성해야한다. 저장소는하드디스크의특정폴더로하면되고, 임의의이름으로선 택가능하다. 일단 D:\Repos itory 로해서생성하자. < 저장소생성 > 2.3.2 서비스 (Service) 등록 서브버전서버를서비스로등록하여윈도우부팅시에자동으로실행되도록하자. 윈도우서비스등록은 sc.exe 프로세스로등록가 능하다. cmd.exe 를실행해서아래와같이입력하도록하자. 4/11
< 서비스등록 > 아래는서브버전서비스를등록하고서비스를해제하는명령이다. 서비스등록 : sc create svn binpath= "C :\Program Files \Subversion\bin\svnserve.ex e --service - r D:\repository " display nam e= "Subversion Server" depend= T cpip start= auto 서비스해제 : sc delete svn display nam e= "Subversion Server" 별다른문제가없다면성공적으로등록했다는메시지가출력될것이다. 2.3.3 방화벽 (Firewall) 해제 서브버전은 T C P 3690 포트와 UDP 3690 포트를사용한다. 윈도우방화벽및 Anti-Virus 의방화벽을해제하도록하자. 아래는윈도우방화벽에서포트를추가하는방법이다. TCP 와 UDP 각각등록해서모두가능하도록하자. < 방화벽해제 > 2.4 저장소 (Repository) 생성 이제서버설정이끝났으니실제로소스또는데이터를관리할저장소 (Repository) 를생성해야한다. 서브버전관련데이터는 D:\Repos itory 에저장하기로했으므로하위폴더에저장소를생성하자. 2.4.1 커맨드라인 (Command Line) 방식 cmd.exe 를실행한뒤 D:\Repos itory 폴더로이동하여아래와같이입력한다. "C :\Program Files \Subversion\bin\svnadm in" create --fs -ty pe fsfs test 위의파란색으로표시된 test를유의해서보자. test 대신에생성을원하는폴더명으로바꿔서입력하면된다. 아래는위의명령을실행한후결과화면이다. 5/11
< 저장소생성 > 2.4.2 Tortois Subversion 클라이언트를사용한방식 Tortois Subversion 클라이언트를설치했다면좀더편한방법으로생성할수있다. 아래는 Tortoise Subversion 클라이언트를통해생성하는방법이다. < 저장소생성 > D:\Repos itory 폴더에생성할저장소이름 (Test) 의폴더를미리생성한후 Tortoise Subversion 클라이언트에서 "C reate repos itory here" 를클릭하면된다. 파일시스템을선택하는다이얼로그가뜨면 "N ative files y s tem ( fs fs ) " 를선택한후 OK를눌러서생성하면된다. 2.5 저장소접근설정 저장소를생성하고나면아래와같은폴더와파일들이생긴다. 6/11
< 저장소폴더상태 > 이중에서접근권한을제어하기위해서는 2 개의파일을손봐야하는데다음항목을보자 2.5.1 svnserve.conf ###Thisfilecontrolstheconfigurationofthesvnservedaemon,ifyou ###useittoallowaccesstothisrepository. (Ifyouonlyallow ###accessthroughhttp:and/orfile:urls,thenthisfileis ###irrelevant.) ###Visithttp://subversion.tigris.org/formoreinformation. [general] ###Theseoptionscontrolaccesstotherepositoryforunauthenticated ###andauthenticatedusers. Validvaluesare"write","read", ###and"none". Thesamplesettingsbelowarethedefaults. anon-access = none <== 로그인하지않은사용자는아무것도못하도록한다. auth-access = write ###Thepassword-dboptioncontrolsthelocationofthepassword ###databasefile. Unlessyouspecifyapathstartingwitha/, ###thefile'slocationisrelativetotheconfdirectory. ###Uncommentthelinebelowtousethedefaultpasswordfile. password-db = passwd <== ID 와 Password 를저장하는파일이름 ###Theauthz-dboptioncontrolsthelocationoftheauthorization ###rulesforpath-basedaccesscontrol. Unlessyouspecifyapath ###startingwitha/,thefile'slocationisrelativetotheconf ###directory. Ifyoudon'tspecifyanauthz-db,nopath-basedaccess ###controlisdone. ###Uncommentthelinebelowtousethedefaultauthorizationfile. #authz-db=authz ###Thisoptionspecifiestheauthenticationrealmoftherepository. ###Iftworepositorieshavethesameauthenticationrealm,theyshould ###havethesamepassworddatabase,andviceversa. Thedefaultrealm ###isrepository'suuid. realm = KKAMAGUI Repository <== 접근했을때클라이언트에게보여줄저장소메시지위와같이파일을수정한다음저장한다. 2.5.2 passwd ###Thisfileisanexamplepasswordfileforsvnserve. ###Itsformatissimilartothatofsvnserve.conf.Asshowninthe ###examplebelowitcontainsonesectionlabelled[users]. ###Thenameandpasswordforeachuserfollow,oneaccountperline. [users] #harry=harryssecret 7/11
#sally=sallyssecret kkamagui = kkamagui 위와같이 ID = Password 의형태로입력한뒤저장하면된다. 3. 간단한서브버전 (Subversion) 서버테스트 테스트방법은간단하다. 탐색기에서오른쪽버튼을눌러서표시되는메뉴에서 "Repo-Brow s er" 를클릭하여아래와같은창이 뜨면서브버전서버가설치된주소와저장소이름을같이입력해주면된다. <Repo-brow ser 메뉴 > 이제주소와저장소의이름을입력하자. 주소를 kkam agui.egloos.com, 그리고저장소를 tes t 라고가정하고입력하면아래와 같이될것이다. < 서브버전주소입력 > "OK " 버튼을누르면실제서버에접속해서저장소정보를얻어오는데, 아래와같은화면이표시될것이다. 실제로정상적으로접속 이된다면 "tes t" 항목아래에아무것도표시되지않을것이지만문제가발생한다면아래와같이에러메시지가표시될것이다. 8/11
<Repo-Brow ser 실행 - 에러발생 > 위와같은에러메시지가표시되면처음단계부터설정을다시한번확인하자. 아무런에러메시지가없다면정상적으로설치된경 우이므로열심히 Check-out, commit, update 를반복하면된다. 4. 서브버전 (Subversion) 서버를설치하지않고로컬 (Local) 에서소스관리하기 서브버전서버가설치되어있어야꼭소스버전관리가가능한것일까? " 답은그렇지않다 " 이다. Tortoise Subversion 클라이언트를설치했다면로컬에저장소를만들고 file:/ / / 키워드로접근하여소스버전을관리하는것이가능하다. 4.1 저장소생성 위의 "2.4 저장소 ( Repos itory ) 생성 " 부분을참고해서로컬에 Tortoise 를이용하여저장소를생성하자. 그리고파일들을수정해 서특정유저만접근가능하도록수정하자. 4.2 저장소접근테스트 위의 "3. 간단한서브버전 ( Subversion) 서버테스트 " 부분을참고하여 "Repo-brow ser" 를실행하고주소에아래와같이입력한후 OK를누르자. file:/ / / d:\repos itory \tes t 정상적으로실행되면아래와같은화면이표시될것이다. 9/11
<Repo-brow ser 실행 > 아무런에러가없으므로정상적으로실행되었음을알수있다. 이렇게함으로써서버를설치하지않고도로컬에서소스버전관리를 할수있다. 5. 기타팁 5.1 버전관리시무시할파일확장자설정 소스를컴파일해서나오는 object 파일이나기타필요없는부산물들은버전관리를할필요가없다. 그런파일들을일일이수작업으로제외하기는상당히귀찮은작업인데, 다행이 Tortoise에서이것을편리하게할수있는옵션이있다. "S ettings " 메뉴에가면아래와같은화면이표시된다. 여기에 "Global Ignore Pattern" 항목에무시할파일의확장자나파일명을입력하면된다. *.s cc *.s br *.pch *.pcb *.ilk *.idb *.res *.o *.obj *.ncb *.opt *.plg < 확장자및파일명입력 > 6. 마치면서... 이로서그지긋지긋하게느린소스세이프 (SourceSafe) 에서벗어날수있게되었다 ( 이렇게좋을수가... ㅜ _ ㅜ ). 소스버전관리를 통해프로젝트를보다효율적으로관리하고협업의능률을최대한활용하자. @0@)/~~!! 10/11
7. 참고사이트 http:/ / blog.naver.com / m az inggaa?redirect=log&logno=130023412047 설치에대해서아주자세하게잘나와있다. 부족한부분은여기서참고하도록하자. 2011-09-13 14:11 에 kkamagui 님이마지막으로수정 20 프로그래밍팁 이글과엮인글이 1 개있습니다. 댓글 (0) 로그인한사람에게만글쓰기를허용하고있습니다. 로그인해주세요. 댓글달기 이전 다음 11/11