SlideShare ist ein Scribd-Unternehmen logo
1 von 22
SVN 버전관리 프로그램 매뉴얼
        작성자 : 김성진, 김진태




       SVN
목차
LOGO
        SVN 이란?
                     what
        왜 SVN인가?
                     why
        설치법 및 사용법
                     how




                            YOUR SITE HERE
SVN이란?                 -What-
LOGO

  1) SVN(Subversion) 이란?
  Subversion 은 오픈소스 버전 관리 시스템 입니다. SVN을
  사용하여, 소스 파일과 문서의 이력을 기록할 수 있습니다.
  이것은 시간에 걸쳐 파일과 디렉토리를 관리 합니다. 파일의
  트리는 중앙 저장소로 놓여집니다. 저장소는 보통의 파일
  서버와 매우 비슷 하지만, 이제껏 만들어진 파일과 디렉토리
  의 모든 변경을 기억하고 있습니다.

  2) SVN의 주요 특징
  - revision 의 의미
    앞서 말했듯이 SVN에서 저장소는 하나의 파일 시스템과
   같이 보입니다. 본질적으로 저장소는 트리의 나열입니다.
   리비전 번호는 각각의 트리에 붙여집니다.

  - 브랜치와 태그
    CVS에서는 브랜치가 프로그램에서 제공하는 하나의 구성
    방식이었습니다. 하지만 SVN에서는 브랜치를 따로 구분
    하지 않습니다. 일반적인 디렉토리에 태그를 붙여서 사용자
    가 구분할 수 있는 방법으로 브랜치의 개념을 제공합니다.

                                          YOUR SITE HERE
SVN이란?                          -What-
LOGO

  3) SVN이 추천하는 파일 저장방식
   project/
     trunk/               #main stem
                     #(최종적으로 개발된 부분)

       branches/   #각 버전의 최신 정보
            new-interface/
            windows-port/ …

       tags/           #최종적으로 배포된 내용 (release)
               version-1.0/
               version-1.1/
               version-2.0/


       **보통 하나의 project를 하게 되면, 그 이름의 project directory를
       만들고, 그 안에 trunk를 만들어서, 그것을 main stem 으로 씁니다.
       만약 calc/ 란 project가 있다면, 그 안에 trunk를 하나 만들어서
       file들을 calc/에 두는 것이 아니라, calc/trunk/ 안에 두는 것입니다.



                                                           YOUR SITE HERE
SVN이란?                -What-
LOGO

  4) CVS와 비교했을 때의 장점
     (SVN은 CVS의 단점을 극복하기 위해 만들어졌습니다)

   - Commit 단위가 파일이 아니라 체인지 셋입니다.
      : 디렉토리 단위로 Commit이 가능합니다.

   - CVS에 비해 엄청나게 빠른 업데이트/브랜칭/태깅 시간

   - CVS와 거의 동일한 사용법, CVS사용자 금새 습득 가능

   - 파일이름 변경, 이동, 디렉토리 버전관리도 지원
     : 모든 기록이 히스토리에 남습니다.

   - 트리별, 파일별 접근 제어 리스트, 저장소 쓰기 접근을 가진
     개발자라도 아무 소스나 수정하지 못하게 조절 가능

   - 확장성을 염두에 둔 구조, 깔끔한 소스
     : 보다 사용자 의존적입니다.

   - 저장소/ 프로젝트 별 환경설정 가능
                                         YOUR SITE HERE
왜 SVN인가?                           -Why-
LOGO

   1) 왜 SVN 인가?
       - 백업의 용도로서 상당히 유용합니다.
          : 개발자들이 따로 백업을 남기지 않아도 됩니다.
       - 팀작업 공유에 좋습니다.
          : 다수의 개발자가 하나의 저장소에 접근이 가능합니다.
       - 좀 더 심화된 버젼관리
          : SVN의 branches, tags 등을 이용하면 특정 리비전을 따로 저장할 수
           있습니다.

   2) SVN에 관한 말




                                                           YOUR SITE HERE
SVN서버설치 및 설정 -
LOGO
        How1-

  서버 프로그램 설치 후 저장소(Repository)로 사용될 폴더
  를 생성, 설정하기 위해 콘솔을 실행시켜 설치 폴더 아래
  bin폴더로 이동후 다음과 같이 입력합니다.

  Svnadmin create --fs-type bdb d:svn

  ** d:svn = 드라이브명:디렉토리명…




                                         YOUR SITE HERE
SVN서버설치 및 설정 -
LOGO
       How1-

  저장소 폴더가 생성됩니다.
  폴더내의 Readme 파일을 열어 확인이 가능합니다.




                                  YOUR SITE HERE
SVN서버설치 및 설정 -
LOGO
       How1-

  D:Svnsvn 폴더가 생기고 서브 파일 및 폴더가 생성
  서버 설치후 사용시 필요한 인증작업을 위해 Conf폴더의
  svnserve.conf파일을 열어 아래와 같이 덧붙여 줍니다.


          [General]
          Anon-access = none
          Auth-access = write
          Password-db = passwd


  이것은 인증받지 않은 사용자를 차단하기 위한 설정입니다.




                                        YOUR SITE HERE
SVN서버설치 및 설정 -
LOGO
       How1-

   사용자별 패스워드를 설정하기 위해서는 Passwd파일을 열어
  [user] 부분에 사용자 계정을 추가합니다.



           [User]
           nature = net
           nature1 = net1
           nature2 = net2 ……

   ID = PASSWORD
   형식으로 설정하여 사용자를 추가할 수 있습니다.




                                       YOUR SITE HERE
SVN서버설치 및 설정 -
LOGO
       How1-

  서버 구동에는 아파치 웹서버 연동이 아닌 로컬 환경에서
  네트워크로 연결된 컴퓨터간 작업을 할 수 있도록 설정합니다




   d:>svnserve –d –r d:svn

  커맨드 창을 열어 위와 같이 입력 후 엔터키를 누르면 서버
  가 활성화 됩니다.




                                     YOUR SITE HERE
SVN클라이언트 사용법                  –How2-
LOGO

   1) Tortoise SVN의 특징
    - 윈도우 탐색기에 애드온 되는 GUI 클라이언트 입니다.

    - 직관적인 아이콘 사용으로 상태를 쉽게 인식할 수 있습니다.

    - 설치가 다른 윈도 어플리케이션과 같이 매우 간단합니다.
       ##인스톨러가 자동으로 설치 후 재부팅 여부를 묻습니다.
       ##재부팅을 마치면 탐색기 메뉴에 SVN 메뉴가 추가됩니다.


   2) 서버에 파일 올리기- import(1)
       좌측의 그림과 같이 프로젝트 폴더를
       선택한 후 마우스 우 클릭으로 다음과
       같은 메뉴(TortoiseSVN -> Import)
       를 선택합니다.




                                               YOUR SITE HERE
SVN클라이언트 사용법               –How2-
LOGO

   3) 서버에 파일올리기 - import (2)
       Repository 란에 서버의URL 과 해당 디렉토리를 입력한 후
       OK 버튼을 누릅니다.




   4) Check Out (서버에서 현재 프로젝트 가져오기)
       서버에 프로젝트가 올라가 있으니 다른 클라이언트 호스트
       에서 현재 프로젝트를 가져온다고 가정하겠습니다.
       폴더에서 좌측 그림과 같이 SVN checkout 을 클릭합니다.
       설정한 계정과 패스워드를 입력하면 내려받을 수 있습니다.

                                               YOUR SITE HERE
SVN클라이언트 사용법           –How2-
LOGO

   5) 기본적인 인터페이스
        - 우측
           그림을 보면 녹색의 체크 표시와 적색의 느낌표가 있는
        것을 알 수 있습니다. 서버에 체크아웃 한 후 변경된 파일은
        느낌표가 붙습니다.


   6) 기본적인 명령
     가. UPDATE
        작업 시작 전 업데이트해서 저장소에서 수정된 파일을
        가져옵니다. 작업을 완료 후 저장소에 commit 하기 전에
        반드시 업데이트를 수행하여 작업 중 다른 사람이
        수정했는지 여부를 체크하여 충돌이 발생했는지 여부를
        체크합니다.


       나. COMMIT
        클라이언트에서 변경한 내용을 서버에 반영할 경우
        Commit 을 해야합니다. Commit을 하면 느낌표가 체크
        표시로 변하고 서버의 내용이 변경되어 다른 사용자가
        체크아웃 하거나 업데이트시 변경된 내용을 내려받습니다.

                                             YOUR SITE HERE
SVN클라이언트 사용법                  –How2-
LOGO

   6) 기타 명령어 (1)
       - Import : 맨 처음 프로젝트 시작할 때 서버의 Repository에
       등록하는 명령어.

       - Checkout : 저장소에서 소스를 받아 오는 명령어. 받아온
       소스에는 소스 뿐만이 아니라 버전관리를 위한 파일도 같이 받아온다.
       지우거나 변경시 Reposiotory와 연결 불가능

       - Export : 체크아웃과는 달리 버전 관리 파일을 뺀 순수한 소스만
       가져오는 명령어

       - Commit : 체크아웃한 소스를 수정, 파일 추가, 삭제 등을 한 뒤
       Repository에 저장하여 갱신하는 명령어. Revision이 1
       증가한다.

       - Update : 체크아웃해서 받은 소스를 최신의 소스로 업데이트하는
       명령어. 소스 수정이나 commit하기 전에 한번씩 해주는 것이 좋다.

       - Log : Repository에 어떠한 것들이 변경 되었는지 확인 할
       수있는 log 명령어

       - Diff : diff 명령은 예전 소스파일과 지금의 소스파일을 비교해보는
       명령어. 리눅스의 diff명령과 비슷

                                                    YOUR SITE HERE
SVN클라이언트 사용법                   –How2-
LOGO

   7) 기타 명령어 (2)
       - Blame : Blame은 한 소스파일을 대상으로 각 revision에
       대해서 어떤 행을 누가 수정했는지 알아보기 위한 명령어

       - lock : 파일에 락을 걸어 락을 건 사용자만이 수정할 수 있게
       해주는 명령어. 해제는 svn unlock

       왜 파일에 락을 걸었는지 로그를 기록할 수 있다.

       - Add : 새 파일을 만들었을 경우 파일을 추가해주는 명령어. 그
       뒤에 곡 svn commit를 해줘야한다. 새 파일을 생성해서 올릴
       때에도 꼭 add를 해줘야 함. 안해주면 commit를 해도 안 올라감.




                                                   YOUR SITE HERE
SVN클라이언트 사용법                   –How2-
LOGO

   8) Conflict 시 해결법
    가) Conflict 시나리오
       - A와 B 두 명의 개발자가 있다.
       - A와 B 모두 자신의 로컬에서 수정한 파일을 Update하지 않고
         Commit 한다.
       - A가 먼저 Commit을 한다.
       - B가 Commit을 할 때, 에러메시지가 출력된다. 충 돌


   나) Conflict 해결법 (Resolve)
       B의 역할
       - B의 SVN 메뉴에 Resolve 메뉴가 추가된다.
       - Resolve를 하고 Ok 버튼을 누른다.
       - Commit을 한다.


       A의 역할
       - Update를 한다.
       - 최종적으로 B가 Commit 한 파일이 서버에      해결
         남게된다.

             결론 : 자주 자주 Update를 하자 !!
                                                 YOUR SITE HERE
Subclipse 설치법                   -How3-
LOGO

   1) Subclipse 란?
       - SVN과 eclipse IDE를 연동 가능하게 해주는 Plug-in


   2) Subclipse 설치법(1)
       1. 이클립스의 메뉴중 Help > Software Updates를 선택합니다.

       2. 새로 인스톨 하기(new feature..)를 선택합니다.

       3. Finish를 선택합니다. Subclipse가 없을 경우에는 New Remote
          Site를 선택합니다.

       4. 다음과 같이 Name과 URL을 입력합니다.




                                                         YOUR SITE HERE
Subclipse 설치법                 -How3-
LOGO

   3) Subclipse 설치법(2)
       5. 이미 Subclipse가 깔려있을경우에는 Update할 내용이 없다는
          메세지를 보여줍니다. SubClipse를 선택하고 Next를 선택합니다




       6. 사용에 동의하고 Next 선택합니다.
       7. Finish 후 설치할 파일을 다운로드 합니다.
       8. Install All 후 재부팅 합니다.

                                                    YOUR SITE HERE
Subclipse 설치법             -How3-
LOGO

   4) 설치확인(1)
       - subclipse가 정상적으로 설치되었는지 확인합니다.
       - perspective의 other을 클릭합니다.
       - SVN 저장소가 설치되어 있는 것을 확인할 수 있습니다.




                                           YOUR SITE HERE
Subclipse 설치법                 -How3-
LOGO

   5) 설치확인(2)
       - 이클립스 메뉴의 Window > Preferences > Team > SVN
       이 설치된 것을 확인할 수 있습니다.




                                                      YOUR SITE HERE
Subclipse 사용법                 -How3-
LOGO

   1) 설치확인(2)
       - 이클립스 메뉴의 Window > Preferences > Team > SVN
       이 설치된 것을 확인할 수 있습니다.




                                                      YOUR SITE HERE

Weitere ähnliche Inhalte

Was ist angesagt?

Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projetoejdn1
 
강좌 03 개발환경 구축
강좌 03 개발환경 구축강좌 03 개발환경 구축
강좌 03 개발환경 구축chcbaram
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability흥배 최
 
Saa s software como serviço (slides)
Saa s   software como serviço (slides)Saa s   software como serviço (slides)
Saa s software como serviço (slides)Daniela Nunes
 
Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Aécio Pires
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8Helder da Rocha
 
강좌 05 통신용 PC 프로그래밍
강좌 05 통신용 PC 프로그래밍강좌 05 통신용 PC 프로그래밍
강좌 05 통신용 PC 프로그래밍chcbaram
 
ビルドで情報を埋め込んでみた
ビルドで情報を埋め込んでみたビルドで情報を埋め込んでみた
ビルドで情報を埋め込んでみたKazuhide Maruyama
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계chcbaram
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCAdriano Teixeira de Souza
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編OESF Education
 
Office365勉強会 #23 Azure AD のテナント設計(Office365管理者向け)
Office365勉強会 #23 Azure AD のテナント設計(Office365管理者向け)Office365勉強会 #23 Azure AD のテナント設計(Office365管理者向け)
Office365勉強会 #23 Azure AD のテナント設計(Office365管理者向け)Genki WATANABE
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitosMailson Queiroz
 
静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携Masaru Horioka
 
base de données fédérés
base de données fédérésbase de données fédérés
base de données fédérésOussama Yoshiki
 

Was ist angesagt? (20)

How To Build Android for ARM Chip boards
How To Build Android for ARM Chip boardsHow To Build Android for ARM Chip boards
How To Build Android for ARM Chip boards
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
강좌 03 개발환경 구축
강좌 03 개발환경 구축강좌 03 개발환경 구축
강좌 03 개발환경 구축
 
Tdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalabilityTdc2013 선배들에게 배우는 server scalability
Tdc2013 선배들에게 배우는 server scalability
 
Apresentação fdd
Apresentação fddApresentação fdd
Apresentação fdd
 
Saa s software como serviço (slides)
Saa s   software como serviço (slides)Saa s   software como serviço (slides)
Saa s software como serviço (slides)
 
Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012Apresentação sobre Zabbix na iDEZ 2012
Apresentação sobre Zabbix na iDEZ 2012
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8
 
강좌 05 통신용 PC 프로그래밍
강좌 05 통신용 PC 프로그래밍강좌 05 통신용 PC 프로그래밍
강좌 05 통신용 PC 프로그래밍
 
ビルドで情報を埋め込んでみた
ビルドで情報を埋め込んでみたビルドで情報を埋め込んでみた
ビルドで情報を埋め込んでみた
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계강좌 04 펌웨어 구조 설계
강좌 04 펌웨어 구조 설계
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Sistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPCSistemas Distribuídos - Comunicação Distribuída – RPC
Sistemas Distribuídos - Comunicação Distribuída – RPC
 
Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編Android™組込み開発基礎コース BeagleBoard編
Android™組込み開発基礎コース BeagleBoard編
 
Office365勉強会 #23 Azure AD のテナント設計(Office365管理者向け)
Office365勉強会 #23 Azure AD のテナント設計(Office365管理者向け)Office365勉強会 #23 Azure AD のテナント設計(Office365管理者向け)
Office365勉強会 #23 Azure AD のテナント設計(Office365管理者向け)
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitos
 
Eng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. RequisitosEng.ª do Software - 2. Requisitos
Eng.ª do Software - 2. Requisitos
 
静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携静的解析Klocwork とJenkins CIの連携
静的解析Klocwork とJenkins CIの連携
 
base de données fédérés
base de données fédérésbase de données fédérés
base de données fédérés
 

Ähnlich wie Svn 버전관리 프로그램_매뉴얼

Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 rockplace
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함Ji-Woong Choi
 
Svn server 설치(명준민_2015.07.10)
Svn server 설치(명준민_2015.07.10)Svn server 설치(명준민_2015.07.10)
Svn server 설치(명준민_2015.07.10)준민 명
 
Svn 사용하기
Svn 사용하기Svn 사용하기
Svn 사용하기Jung-Ho Kim
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱NAVER D2
 
자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅Yoonsung Jung
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트Chanwoong Kim
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드수정 김
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호용호 최
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정중선 곽
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1Booseol Shin
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정leejungwang
 
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211Ji-Woong Choi
 
Bon voyage Docker_Kubernetes
Bon voyage Docker_KubernetesBon voyage Docker_Kubernetes
Bon voyage Docker_Kubernetesssuseraada82
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기Chanwoong Kim
 

Ähnlich wie Svn 버전관리 프로그램_매뉴얼 (20)

Svn
SvnSvn
Svn
 
Subversion
SubversionSubversion
Subversion
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
 
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
[오픈소스컨설팅]Subversion vs git - 참을 수 없는 간단함
 
Svn server 설치(명준민_2015.07.10)
Svn server 설치(명준민_2015.07.10)Svn server 설치(명준민_2015.07.10)
Svn server 설치(명준민_2015.07.10)
 
Svn 사용하기
Svn 사용하기Svn 사용하기
Svn 사용하기
 
[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱[231]나는서버를썰터이니너는개발만하여라 양지욱
[231]나는서버를썰터이니너는개발만하여라 양지욱
 
자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅자바 웹프로젝트 개발환경 셋팅
자바 웹프로젝트 개발환경 셋팅
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
젠킨스 설치 및 설정
젠킨스 설치 및 설정젠킨스 설치 및 설정
젠킨스 설치 및 설정
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
 
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
 
InfiniFlux with_php
InfiniFlux with_phpInfiniFlux with_php
InfiniFlux with_php
 
Bon voyage Docker_Kubernetes
Bon voyage Docker_KubernetesBon voyage Docker_Kubernetes
Bon voyage Docker_Kubernetes
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 

Svn 버전관리 프로그램_매뉴얼

  • 1. SVN 버전관리 프로그램 매뉴얼 작성자 : 김성진, 김진태 SVN
  • 2. 목차 LOGO  SVN 이란? what  왜 SVN인가? why  설치법 및 사용법 how YOUR SITE HERE
  • 3. SVN이란? -What- LOGO 1) SVN(Subversion) 이란? Subversion 은 오픈소스 버전 관리 시스템 입니다. SVN을 사용하여, 소스 파일과 문서의 이력을 기록할 수 있습니다. 이것은 시간에 걸쳐 파일과 디렉토리를 관리 합니다. 파일의 트리는 중앙 저장소로 놓여집니다. 저장소는 보통의 파일 서버와 매우 비슷 하지만, 이제껏 만들어진 파일과 디렉토리 의 모든 변경을 기억하고 있습니다. 2) SVN의 주요 특징 - revision 의 의미 앞서 말했듯이 SVN에서 저장소는 하나의 파일 시스템과 같이 보입니다. 본질적으로 저장소는 트리의 나열입니다. 리비전 번호는 각각의 트리에 붙여집니다. - 브랜치와 태그 CVS에서는 브랜치가 프로그램에서 제공하는 하나의 구성 방식이었습니다. 하지만 SVN에서는 브랜치를 따로 구분 하지 않습니다. 일반적인 디렉토리에 태그를 붙여서 사용자 가 구분할 수 있는 방법으로 브랜치의 개념을 제공합니다. YOUR SITE HERE
  • 4. SVN이란? -What- LOGO 3) SVN이 추천하는 파일 저장방식 project/ trunk/ #main stem #(최종적으로 개발된 부분) branches/ #각 버전의 최신 정보 new-interface/ windows-port/ … tags/ #최종적으로 배포된 내용 (release) version-1.0/ version-1.1/ version-2.0/ **보통 하나의 project를 하게 되면, 그 이름의 project directory를 만들고, 그 안에 trunk를 만들어서, 그것을 main stem 으로 씁니다. 만약 calc/ 란 project가 있다면, 그 안에 trunk를 하나 만들어서 file들을 calc/에 두는 것이 아니라, calc/trunk/ 안에 두는 것입니다. YOUR SITE HERE
  • 5. SVN이란? -What- LOGO 4) CVS와 비교했을 때의 장점 (SVN은 CVS의 단점을 극복하기 위해 만들어졌습니다) - Commit 단위가 파일이 아니라 체인지 셋입니다. : 디렉토리 단위로 Commit이 가능합니다. - CVS에 비해 엄청나게 빠른 업데이트/브랜칭/태깅 시간 - CVS와 거의 동일한 사용법, CVS사용자 금새 습득 가능 - 파일이름 변경, 이동, 디렉토리 버전관리도 지원 : 모든 기록이 히스토리에 남습니다. - 트리별, 파일별 접근 제어 리스트, 저장소 쓰기 접근을 가진 개발자라도 아무 소스나 수정하지 못하게 조절 가능 - 확장성을 염두에 둔 구조, 깔끔한 소스 : 보다 사용자 의존적입니다. - 저장소/ 프로젝트 별 환경설정 가능 YOUR SITE HERE
  • 6. 왜 SVN인가? -Why- LOGO 1) 왜 SVN 인가? - 백업의 용도로서 상당히 유용합니다. : 개발자들이 따로 백업을 남기지 않아도 됩니다. - 팀작업 공유에 좋습니다. : 다수의 개발자가 하나의 저장소에 접근이 가능합니다. - 좀 더 심화된 버젼관리 : SVN의 branches, tags 등을 이용하면 특정 리비전을 따로 저장할 수 있습니다. 2) SVN에 관한 말 YOUR SITE HERE
  • 7. SVN서버설치 및 설정 - LOGO How1- 서버 프로그램 설치 후 저장소(Repository)로 사용될 폴더 를 생성, 설정하기 위해 콘솔을 실행시켜 설치 폴더 아래 bin폴더로 이동후 다음과 같이 입력합니다. Svnadmin create --fs-type bdb d:svn ** d:svn = 드라이브명:디렉토리명… YOUR SITE HERE
  • 8. SVN서버설치 및 설정 - LOGO How1- 저장소 폴더가 생성됩니다. 폴더내의 Readme 파일을 열어 확인이 가능합니다. YOUR SITE HERE
  • 9. SVN서버설치 및 설정 - LOGO How1- D:Svnsvn 폴더가 생기고 서브 파일 및 폴더가 생성 서버 설치후 사용시 필요한 인증작업을 위해 Conf폴더의 svnserve.conf파일을 열어 아래와 같이 덧붙여 줍니다. [General] Anon-access = none Auth-access = write Password-db = passwd 이것은 인증받지 않은 사용자를 차단하기 위한 설정입니다. YOUR SITE HERE
  • 10. SVN서버설치 및 설정 - LOGO How1- 사용자별 패스워드를 설정하기 위해서는 Passwd파일을 열어 [user] 부분에 사용자 계정을 추가합니다. [User] nature = net nature1 = net1 nature2 = net2 …… ID = PASSWORD 형식으로 설정하여 사용자를 추가할 수 있습니다. YOUR SITE HERE
  • 11. SVN서버설치 및 설정 - LOGO How1- 서버 구동에는 아파치 웹서버 연동이 아닌 로컬 환경에서 네트워크로 연결된 컴퓨터간 작업을 할 수 있도록 설정합니다 d:>svnserve –d –r d:svn 커맨드 창을 열어 위와 같이 입력 후 엔터키를 누르면 서버 가 활성화 됩니다. YOUR SITE HERE
  • 12. SVN클라이언트 사용법 –How2- LOGO 1) Tortoise SVN의 특징 - 윈도우 탐색기에 애드온 되는 GUI 클라이언트 입니다. - 직관적인 아이콘 사용으로 상태를 쉽게 인식할 수 있습니다. - 설치가 다른 윈도 어플리케이션과 같이 매우 간단합니다. ##인스톨러가 자동으로 설치 후 재부팅 여부를 묻습니다. ##재부팅을 마치면 탐색기 메뉴에 SVN 메뉴가 추가됩니다. 2) 서버에 파일 올리기- import(1) 좌측의 그림과 같이 프로젝트 폴더를 선택한 후 마우스 우 클릭으로 다음과 같은 메뉴(TortoiseSVN -> Import) 를 선택합니다. YOUR SITE HERE
  • 13. SVN클라이언트 사용법 –How2- LOGO 3) 서버에 파일올리기 - import (2) Repository 란에 서버의URL 과 해당 디렉토리를 입력한 후 OK 버튼을 누릅니다. 4) Check Out (서버에서 현재 프로젝트 가져오기) 서버에 프로젝트가 올라가 있으니 다른 클라이언트 호스트 에서 현재 프로젝트를 가져온다고 가정하겠습니다. 폴더에서 좌측 그림과 같이 SVN checkout 을 클릭합니다. 설정한 계정과 패스워드를 입력하면 내려받을 수 있습니다. YOUR SITE HERE
  • 14. SVN클라이언트 사용법 –How2- LOGO 5) 기본적인 인터페이스 - 우측 그림을 보면 녹색의 체크 표시와 적색의 느낌표가 있는 것을 알 수 있습니다. 서버에 체크아웃 한 후 변경된 파일은 느낌표가 붙습니다. 6) 기본적인 명령 가. UPDATE 작업 시작 전 업데이트해서 저장소에서 수정된 파일을 가져옵니다. 작업을 완료 후 저장소에 commit 하기 전에 반드시 업데이트를 수행하여 작업 중 다른 사람이 수정했는지 여부를 체크하여 충돌이 발생했는지 여부를 체크합니다. 나. COMMIT 클라이언트에서 변경한 내용을 서버에 반영할 경우 Commit 을 해야합니다. Commit을 하면 느낌표가 체크 표시로 변하고 서버의 내용이 변경되어 다른 사용자가 체크아웃 하거나 업데이트시 변경된 내용을 내려받습니다. YOUR SITE HERE
  • 15. SVN클라이언트 사용법 –How2- LOGO 6) 기타 명령어 (1) - Import : 맨 처음 프로젝트 시작할 때 서버의 Repository에 등록하는 명령어. - Checkout : 저장소에서 소스를 받아 오는 명령어. 받아온 소스에는 소스 뿐만이 아니라 버전관리를 위한 파일도 같이 받아온다. 지우거나 변경시 Reposiotory와 연결 불가능 - Export : 체크아웃과는 달리 버전 관리 파일을 뺀 순수한 소스만 가져오는 명령어 - Commit : 체크아웃한 소스를 수정, 파일 추가, 삭제 등을 한 뒤 Repository에 저장하여 갱신하는 명령어. Revision이 1 증가한다. - Update : 체크아웃해서 받은 소스를 최신의 소스로 업데이트하는 명령어. 소스 수정이나 commit하기 전에 한번씩 해주는 것이 좋다. - Log : Repository에 어떠한 것들이 변경 되었는지 확인 할 수있는 log 명령어 - Diff : diff 명령은 예전 소스파일과 지금의 소스파일을 비교해보는 명령어. 리눅스의 diff명령과 비슷 YOUR SITE HERE
  • 16. SVN클라이언트 사용법 –How2- LOGO 7) 기타 명령어 (2) - Blame : Blame은 한 소스파일을 대상으로 각 revision에 대해서 어떤 행을 누가 수정했는지 알아보기 위한 명령어 - lock : 파일에 락을 걸어 락을 건 사용자만이 수정할 수 있게 해주는 명령어. 해제는 svn unlock 왜 파일에 락을 걸었는지 로그를 기록할 수 있다. - Add : 새 파일을 만들었을 경우 파일을 추가해주는 명령어. 그 뒤에 곡 svn commit를 해줘야한다. 새 파일을 생성해서 올릴 때에도 꼭 add를 해줘야 함. 안해주면 commit를 해도 안 올라감. YOUR SITE HERE
  • 17. SVN클라이언트 사용법 –How2- LOGO 8) Conflict 시 해결법 가) Conflict 시나리오 - A와 B 두 명의 개발자가 있다. - A와 B 모두 자신의 로컬에서 수정한 파일을 Update하지 않고 Commit 한다. - A가 먼저 Commit을 한다. - B가 Commit을 할 때, 에러메시지가 출력된다. 충 돌 나) Conflict 해결법 (Resolve) B의 역할 - B의 SVN 메뉴에 Resolve 메뉴가 추가된다. - Resolve를 하고 Ok 버튼을 누른다. - Commit을 한다. A의 역할 - Update를 한다. - 최종적으로 B가 Commit 한 파일이 서버에 해결 남게된다. 결론 : 자주 자주 Update를 하자 !! YOUR SITE HERE
  • 18. Subclipse 설치법 -How3- LOGO 1) Subclipse 란? - SVN과 eclipse IDE를 연동 가능하게 해주는 Plug-in 2) Subclipse 설치법(1) 1. 이클립스의 메뉴중 Help > Software Updates를 선택합니다. 2. 새로 인스톨 하기(new feature..)를 선택합니다. 3. Finish를 선택합니다. Subclipse가 없을 경우에는 New Remote Site를 선택합니다. 4. 다음과 같이 Name과 URL을 입력합니다. YOUR SITE HERE
  • 19. Subclipse 설치법 -How3- LOGO 3) Subclipse 설치법(2) 5. 이미 Subclipse가 깔려있을경우에는 Update할 내용이 없다는 메세지를 보여줍니다. SubClipse를 선택하고 Next를 선택합니다 6. 사용에 동의하고 Next 선택합니다. 7. Finish 후 설치할 파일을 다운로드 합니다. 8. Install All 후 재부팅 합니다. YOUR SITE HERE
  • 20. Subclipse 설치법 -How3- LOGO 4) 설치확인(1) - subclipse가 정상적으로 설치되었는지 확인합니다. - perspective의 other을 클릭합니다. - SVN 저장소가 설치되어 있는 것을 확인할 수 있습니다. YOUR SITE HERE
  • 21. Subclipse 설치법 -How3- LOGO 5) 설치확인(2) - 이클립스 메뉴의 Window > Preferences > Team > SVN 이 설치된 것을 확인할 수 있습니다. YOUR SITE HERE
  • 22. Subclipse 사용법 -How3- LOGO 1) 설치확인(2) - 이클립스 메뉴의 Window > Preferences > Team > SVN 이 설치된 것을 확인할 수 있습니다. YOUR SITE HERE