태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

 

들어가기 전에...


0.시작하면서...

 개발자라면 한번쯤 소스 관리에 대해서 고민해 봤을 것이다. 특히나 수정이 잦은 프로그램이라면 더욱 더 버전 관리가 중요한데, 이걸 일일이 폴더나 날짜별로 관리하다가는 낭패를 보기 십상이다. 그래서 버전관리 프로그램을 사용하는데, 대표적인 것으로 소스세이프(Source Safe), CVS, Subversion 있다.

 윈도우 프로그래머라면 소스세이프가 굉장히 유용한데(Visual Studio를 설치하면 자동으로 깔리므로... ㅡ_ㅡa..), 사용해보니 속도가 무지 느리고 VC 또한 한참 뒤에 뜨게하는 무시무시한 단점이 있어서 다른 것을 찾다가 서브버전을 선택하게 되었다.

 서브버전의 장점은 인터넷에 잘 나오므로 굳이 이야기하지 않겠고, 실제 윈도우 버전 설치 및 설정에 대해서 알아보자.


1.Tortoise 서브버전(Subversion) 클라이언트 설치

1.1 Tortoise 서브버전(Subversion) 클라이언트 다운로드

 서브버전 서버를 설치한다면서 왜 클라이언트를 설치하는 것일까? 그것은 서버 설치후 나머지 작업을 편리하게 할 수 있기 때문이다.

 서브버전 클라이언트는 http://tortoisesvn.net/downloads 에서 다운 받을 수 있다.

Subversion9.PNG

<Tortoise 서브버전 클라이언트>


1.2 Tortoise 서브버전(Subversion) 클라이언트 설치

 클라이언트 설치는 간단하다. 무조건 "Next" 버튼을 눌러서 완료를 하면 알아서 다 해준다.

Subversion10.PNG 

<Tortoise 서브버전(Subversion) 클라이언트 설치>


 설치 후 탐색기에서 오른쪽 버튼을 클릭했을 때 아래와 같은 메뉴가 뜨면 정상적으로 설치된 것이다.

 Subversion11.PNG

<설치 완료>


2.서브버전(Subversion) 서버 설치

2.1 서브버전(Subversion) 서버 다운로드

 서브버전의 윈도우용 설치 파일은 http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 에서 찾을 수 있다. 위 사이트로 이동하면 아래와 같은 화면을 볼 수 있는데, 최신버전의 설치 파일을 다운받아서 설치하도록 하자.

Subversion1.PNG 

<서브버전 서버 파일 다운로드>


2.2 서브버전(Subversion) 설치

 설치 과정은 아주 간단하다. 윈도우 인스톨 파일을 더블클릭해서 기본 옵션으로 설치하면 된다. "Next" 를 계속해서 클릭하여 완료하자.

Subversion2.PNG 

<인스톨 화면>


2.3 서브버전(Subversion) 설정

2.3.1 서브버전(Subversion) 데이터 폴더 생성(Repository)

 서버 설치가 끝났으니 데이터를 저장할 폴더를 생성해야한다. 저장소는 하드디스크의 특정 폴더로 하면 되고, 임의의 이름으로 선택 가능하다. 일단 D:\Repository로 해서 생성하자.

Subversion3.PNG

<저장소 생성>


2.3.2 서비스(Service) 등록

 서브버전 서버를 서비스로 등록하여 윈도우 부팅시에 자동으로 실행되도록 하자. 윈도우 서비스 등록은 sc.exe 프로세스로 등록가능하다. cmd.exe를 실행해서 아래와 같이 입력하도록 하자.

 Subversion4.PNG

<서비스 등록>

 아래는 서브버전 서비스를 등록하고 서비스를 해제하는 명령이다.

  • 서비스 등록 : sc create svn binpath= "C:\Program Files\Subversion\bin\svnserve.exe --service -r D:\repository" displayname= "Subversion Server" depend= Tcpip start= auto

  • 서비스 해제 : sc delete svn displayname= "Subversion Server"

 별다른 문제가 없다면 성공적으로 등록했다는 메시지가 출력될 것이다.


2.3.3 방화벽(Firewall) 해제

 서브버전은 TCP 3690 포트와 UDP 3690 포트를 사용한다. 윈도우 방화벽 및 Anti-Virus의 방화벽을 해제하도록 하자.

 아래는 윈도우 방화벽에서 포트를 추가하는 방법이다. TCP와 UDP 각각 등록해서 모두 가능하도록 하자.
Subversion5.PNG

<방화벽 해제>


2.4 저장소(Repository) 생성

 이제 서버 설정이 끝났으니 실제로 소스 또는 데이터를 관리할 저장소(Repository)를 생성해야 한다. 서브버전 관련 데이터는 D:\Repository 에 저장하기로 했으므로 하위 폴더에 저장소를 생성하자.


2.4.1 커맨드 라인(Command Line) 방식

 cmd.exe 를 실행한 뒤 D:\Repository 폴더로 이동하여 아래와 같이 입력한다.

"C:\Program Files\Subversion\bin\svnadmin" create --fs-type fsfs test

 위의 파란색으로 표시된 test를 유의해서 보자. test 대신에 생성을 원하는 폴더명으로 바꿔서 입력하면 된다.

 아래는 위의 명령을 실행한 후 결과 화면이다.

Subversion6.PNG 

<저장소 생성>

2.4.2 Tortois Subversion 클라이언트를 사용한 방식

 Tortois Subversion 클라이언트를 설치했다면 좀더 편한 방법으로 생성할 수 있다. 아래는 Tortoise Subversion 클라이언트를 통해 생성하는 방법이다.

 Subversion7.PNG

<저장소 생성>

 D:\Repository 폴더에 생성할 저장소 이름(Test)의 폴더를 미리 생성한 후 Tortoise Subversion 클라이언트에서 "Create repository here"를 클릭하면 된다.

 파일 시스템을 선택하는 다이얼로그가 뜨면 "Native filesystem(fsfs)"를 선택한 후 OK를 눌러서 생성하면 된다.


2.5 저장소 접근 설정

 저장소를 생성하고 나면 아래와 같은 폴더와 파일들이 생긴다.

Subversion8.PNG

<저장소 폴더 상태>

 이 중에서 접근 권한을 제어하기위해서는 2개의 파일을 손봐야 하는데 다음 항목을 보자


2.5.1 svnserve.conf

  1. ### This file controls the configuration of the svnserve daemon, if you
    ### use it to allow access to this repository.  (If you only allow
    ### access through http: and/or file: URLs, then this file is
    ### irrelevant.)
  2. ### Visit http://subversion.tigris.org/ for more information.
  3. [general]
    ### These options control access to the repository for unauthenticated
    ### and authenticated users.  Valid values are "write", "read",
    ### and "none".  The sample settings below are the defaults.
    anon-access = none     <== 로그인 하지 않은 사용자는 아무것도 못하도록 한다.
    auth-access = write
  4. ### The password-db option controls the location of the password
    ### database file.  Unless you specify a path starting with a /,
    ### the file's location is relative to the conf directory.
    ### Uncomment the line below to use the default password file.
    password-db = passwd   <== ID와 Password를 저장하는 파일 이름
  5. ### The authz-db option controls the location of the authorization
    ### rules for path-based access control.  Unless you specify a path
    ### starting with a /, the file's location is relative to the conf
    ### directory.  If you don't specify an authz-db, no path-based access
    ### control is done.
    ### Uncomment the line below to use the default authorization file.
    #authz-db = authz
  6. ### This option specifies the authentication realm of the repository.
    ### If two repositories have the same authentication realm, they should
    ### have the same password database, and vice versa.  The default realm
    ### is repository's uuid.
    realm = KKAMAGUI Repository   <== 접근했을 때 클라이언트에게 보여줄 저장소 메시지

 위와 같이 파일을 수정한 다음 저장한다.


2.5.2 passwd

  1. ### This file is an example password file for svnserve.
    ### Its format is similar to that of svnserve.conf. As shown in the
    ### example below it contains one section labelled [users].
    ### The name and password for each user follow, one account per line.
  2. [users]
    # harry = harryssecret
    # sally = sallyssecret
    kkamagui = kkamagui

 위와 같이 ID = Password의 형태로 입력한 뒤 저장하면 된다.



3.간단한 서브버전(Subversion) 서버 테스트

 테스트 방법은 간단하다. 탐색기에서 오른쪽 버튼을 눌러서 표시되는 메뉴에서 "Repo-Browser" 를 클릭하여 아래와 같은 창이 뜨면 서브버전 서버가 설치된 주소와 저장소 이름을 같이 입력해주면 된다.

Subversion7.PNG

<Repo-browser 메뉴>


 이제 주소와 저장소의 이름을 입력하자. 주소를 kkamagui.egloos.com, 그리고 저장소를 test라고 가정하고 입력하면 아래와 같이 될 것이다.

Subversion12.PNG 

<서브버전 주소 입력>


"OK" 버튼을 누르면 실제 서버에 접속해서 저장소 정보를 얻어오는데, 아래와 같은 화면이 표시될 것이다. 실제로 정상적으로 접속이 된다면 "test" 항목 아래에 아무것도 표시되지 않을 것이지만 문제가 발생한다면 아래와 같이 에러메시지가 표시될 것이다.

Subversion13.PNG

<Repo-Browser 실행-에러발생>


 위와 같은 에러 메시지가 표시되면 처음 단계부터 설정을 다시 한번 확인하자. 아무런 에러 메시지가 없다면 정상적으로 설치된 경우이므로 열심히 Check-out, commit, update를 반복하면 된다.


4.서브버전(Subversion) 서버를 설치하지 않고 로컬(Local)에서 소스 관리하기

 서브버전 서버가 설치되어있어야 꼭 소스 버전 관리가 가능한 것일까? "답은 그렇지 않다" 이다.

 Tortoise Subversion 클라이언트를 설치했다면 로컬에 저장소를 만들고 file:/// 키워드로 접근하여 소스 버전을 관리하는 것이 가능하다.


4.1 저장소 생성

 위의 "2.4 저장소(Repository) 생성" 부분을 참고해서 로컬에 Tortoise를 이용하여 저장소를 생성하자. 그리고 파일들을 수정해서 특정 유저만 접근가능하도록 수정하자.


4.2 저장소 접근 테스트

 위의 "3.간단한 서브버전(Subversion) 서버 테스트" 부분을 참고하여 "Repo-browser"를 실행하고 주소에 아래와 같이 입력한 후 OK를 누르자.

file:///d:\repository\test

 정상적으로 실행되면 아래와 같은 화면이 표시될 것이다.

 Subversion14.PNG

<Repo-browser 실행>

 아무런 에러가 없으므로 정상적으로 실행되었음을 알 수 있다. 이렇게 함으로써 서버를 설치하지 않고도 로컬에서 소스 버전관리를 할 수 있다.


5.기타 팁

5.1 버전 관리시 무시할 파일 확장자 설정

 소스를 컴파일해서 나오는 object 파일이나 기타 필요없는 부산물들은 버전관리를 할 필요가 없다. 그런 파일들을 일일이 수작업으로 제외하기는 상당히 귀찮은 작업인데, 다행이 Tortoise에서 이것을 편리하게 할 수 있는 옵션이 있다.

 "Settings" 메뉴에 가면 아래와 같은 화면이 표시된다. 여기에 "Global Ignore Pattern" 항목에 무시할 파일의 확장자나 파일명을 입력하면 된다.

*.scc *.sbr *.pch *.pcb *.ilk *.idb *.res *.o *.obj *.ncb *.opt *.plg

Subversion15.png 

<확장자 및 파일명 입력>


6.마치면서...

 이로서 그 지긋지긋하게 느린 소스세이프(SourceSafe)에서 벗어날 수 있게 되었다(이렇게 좋을 수가... ㅜ_ㅜ). 소스 버전 관리를 통해 프로젝트를 보다 효율적으로 관리하고 협업의 능률을 최대한 활용하자. @0@)/~~!!


7.참고 사이트


top
    이전 댓글 더보기
  1. Michael Kors Outlet 2012.09.07 18:15 신고 댓글주소 | 수정/삭제 | 댓글

    Good article! I visited many sites, only the clear expression in addition to the author's experience. Read your article, I learned a lot of knowledge. I solved many puzzling riddle. Thank you for your sharing.

  2. Burberry Outlet 2012.09.08 11:54 신고 댓글주소 | 수정/삭제 | 댓글

    Good love makes you see the whole world from one person while bad love makes you for a man to leave the world.

  3. Herve Leger Dresses Sale 2012.09.08 11:58 신고 댓글주소 | 수정/삭제 | 댓글

    Any things should go to try, because you don't know, what kind of things or what kind of person will change your life.

  4. Michael Kors Factory Outlet 2012.09.08 12:00 신고 댓글주소 | 수정/삭제 | 댓글

    Sometimes you think day is coming down, actually is myself standing slanting!

  5. Young, we must know how to: 1, do not you brave, nobody strong f 2012.09.08 12:08 신고 댓글주소 | 수정/삭제 | 댓글

    Young, we must know how to: 1, do not you brave, nobody strong for you.2, no umbrella child must strive to run! Their choice of road, the knees also want it to finish. Do not get angry to live up to expectations, not to see through to break through, do not envy you want to listen to, do not delay to positive, not the heart to act. , Preferring to run up Bandao countless times, and do not want to neatly go a lifetime, even if the fall should stand up.

  6. One the biggest enemy is yourself. If a person can overcome thei 2012.09.08 12:10 신고 댓글주소 | 수정/삭제 | 댓글

    One the biggest enemy is yourself. If a person can overcome their own desires, they will win the whole world. In this sense, repaired his own heart, the most important thing for us to get along with the world.

  7. Do not be jealous of others do better than you only need to brea 2012.09.08 12:18 신고 댓글주소 | 수정/삭제 | 댓글

    Do not be jealous of others do better than you only need to break your own records every day, because the success of you and your own war.

  8. christian louboutin shoes 2012.09.26 18:27 신고 댓글주소 | 수정/삭제 | 댓글

    Valuable articles, I learn a lot of things, Write very beautiful! Hope you continue refueling..

  9. christian louboutin outlet 2012.09.26 18:37 신고 댓글주소 | 수정/삭제 | 댓글

    I have been searching for something similar to this for some time today. thank you for sharing! See you next time.

  10. christian louboutin discount 2012.09.26 18:37 신고 댓글주소 | 수정/삭제 | 댓글

    To see your article, I feel very lucky. Very good. Very true.. thank you for sharing with us,

  11. fake oakley sunglasses 2012.10.05 15:41 신고 댓글주소 | 수정/삭제 | 댓글

    fake oakley sunglasses

  12. Ralph Lauren Outlet 2012.10.18 15:06 신고 댓글주소 | 수정/삭제 | 댓글

    FBI Foils New York Fed Bomb Plot. This's an awesome post. Thank you for having such a great resource out here for all of us!

  13. Christian Louboutin Outlet 2012.10.18 16:25 신고 댓글주소 | 수정/삭제 | 댓글

    Obama campaigns in Iowa. Thank you for these ideas. They all looks good. I always want to try something like that but I don’t know where to start. Not too difficult and they use ingredients I mostly have on hand!

  14. Christian Louboutin Outlet UK 2012.10.18 16:44 신고 댓글주소 | 수정/삭제 | 댓글

    Daum: Madonna's tone-deaf tattoo. Thanks again. Your comments are always appreciated! I will be doing a follow up to this called, “How to Write A Nice Article” in the near future.

  15. Coach outlet Store 2012.11.06 13:00 신고 댓글주소 | 수정/삭제 | 댓글

    It’s actually a great and helpful piece of info. I’m satisfied that you shared this helpful information with us. Please stay us up to date like this. Thank you for sharing.

  16. Prada Outlet 2012.11.06 14:15 신고 댓글주소 | 수정/삭제 | 댓글

    Dear .what a nice blog you have. That is really amazing dear buddy keep it up.

  17. Christian Louboutin Outlet 2012.11.06 14:25 신고 댓글주소 | 수정/삭제 | 댓글

    Left on my site a link to this post. I think many people will be interested in it.

  18. Uggs Cheap 2012.11.09 16:04 신고 댓글주소 | 수정/삭제 | 댓글

    Left on my site a link to this post. I think many people will be interested in it.

  19. Uggs Cheap 2012.11.12 16:03 신고 댓글주소 | 수정/삭제 | 댓글

    We offer our clients a unique and personalized experience, offering them access to the best in handcrafted, specialty, and designer eyeglasses and sunglasses.

  20. cheap nike nfl jerseys 2013.01.06 15:43 신고 댓글주소 | 수정/삭제 | 댓글

    http://www.uggfranceba.com/ ugg france la voir si soudainement sur la musique.«Eh bien, vous êtes venue, je vais vous dire ... tout le monde quelques doutes, mais aussi entendu le crissement l', ugg Minato à l'oreille et se mit à parler de ses plans en détail.Du début à la fin, il n'y a pas d'ouverture un à interrompre son récit, le visage de chacun, tout le monde vient de dévoiler le changement de pensées qui ne peuvent pas cacher les changements particuliers dans l'expression précédente,http://www.uggfranceba.com/ ainsi que le plan d'ugg admirer et intéressés.

    http://www.uggfranceba.com/ ugg pas cher après l'arrivée, et d'abord dans les regards des yeux, puis tout à coup tout en riant aux éclats.Trop impératrice douairière rit: «Si dire des bêtises, ou l'audace, ce monde, si vous ugg deuxième place, absolument personne n'a osé appel"ugg fois sourire rigoler Oh années, de faire une timide comme: «. trop impératrice douairière, vous ne pouvez pas être l'enfant de louange si jolie, de beaux enfants seront fiers"

    Mignon rares brille tout le monde tout à coup, puis ils rient.Unique à la Coupe Hardy Yue, continue à diriger les brochettes à venir, ressemble à un fer à son tour en acier. Mains tourne pas au ralenti, a été de http://www.uggfranceba.com/ ugg australia cuit la nourriture délicieuse, de peur que leur mignonne petite dame n'aura plus rien à manger.

Write a comment