우리 회사 svn server : https://192.168.0.20
현재(210407 기준) sck sql server : https://192.168.0.11 DB : sck20210323
=====
SVN Repositories
Branch , Tag , Trunk
(처음에 SVN 서버에서 접근해서 새로 repository를 만들 때
2번째를 선택하면 자동으로 구조 완성)
trunk
- 프로젝트에서 가장 중심이 되는 디렉토리
- 모든 프로그램의 개발 작업은 Trunk 디렉토리에서 이루어 집니다.
- trunk 디렉토리 바로 아래에는 소스들의 파일과 디렉토리가 들어가게 됩니다.
branches
- trunk 에서 뻗어져 나온 나무가지를 뜻합니다.
- 프로그램을 개발하다 보면 trunk 디렉토리에서 또 다른 작은 분류로 빼서 개발해야 할 경우가 생김.
- 프로젝트 내의 작은 프로젝트라 생각하면 됨
- branches 디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 개발하게 됨
(브랜치가 하나 완성된 후, Merge가 되면! 그 브랜치는 이제 필요 없음. 삭제하거나 말거나는 자유..)
tags
- 이 디렉토리는 프로그램을 개발하면서 정기적으로 릴리즈 할 때 , 0.1/0.2/1.0 등
- 버전 별로 소스 코드를 따로 관리하는 공간
- 버전 별로 태그를 붙여서 tag 디렉토리 안에 보관한다고 생각하면 됩니다.
- 단어 자체의 뜻은 꼬리표
출처: https://devzeroty.tistory.com/entry/SVN-branch-tag-trunk-차이 [Dev Story..]
-----
https://WIN-12CV16CFTH0/svn/TEST/
https://192.168.0.20/svn/TEST/
=====
- specific revision
- HEAD revision
Merge a range of revisions
Merge two different Trees
=====
(Branch와 Merge, Commit)
(기본적으로 업데이트 자주 받고, show log!!!!!! 꼭 많이 보기!)
- 처음 trunk의 branch를 만들고 싶을 땐...
1. trunk(받아올 곳 = trunk 폴더! )에서 우클릭 후 branch/tag 클릭,
(중요, 여기는 수정할 수 없게 등록)
2. To path에서 경로로 branches 폴더만!! 선택!! (중요, 여기서 branch는 서버의 위치.)
3. 이후 To path 경로에서 / 후 새로 만들 폴더명 만들기
(그러면 svn 서버에 폴더가 올라감)
4. 그 후 업데이트 한번 하면 완료
(혹시! svn 서버 내 혹은 내 로컬에서 branch용 폴더를 만들면 오류가 날 수 있음.)
-----
- 내가 브랜치에서 수정한 내용 (1. 파일 일부 / 2. 폴더 자체)을
trunk에 올리고 싶을 때 (Merge!!)
수정만 했을 때
---
1. 먼저 로컬의 브랜치의 폴더를 수정!!!
2. 수정한 폴더를 add + commit (그냥 commit으로 선택 후 체크해 한번에 선택도 가능)
3. 이후 Merge 당할 폴더인 trunk에서 우클릭 후에 Merge!
=>여기에서는 trunk! 왜냐면 내 내용을 합치는 것이기 때문.
4. ...을 클릭해서 서버에서 commit으로 올라간 폴더의 위치를 클릭!
5. OK Merge!!
6. 이후 내 로컬 trunk에서 server로! 파일을 commit! 하면 완료!
-----
새로 추가 했을 때
---
브랜치에서 새로 추가한 파일 자체를 브랜치에서 커밋.
이후 위와 동일!
SVN은 SubVersion의 줄임말로 형상관리/소스 관리 툴이다
SVN의 사용목적: 여러명이서 작업하는 프로젝트의 경우 버전관리나 각자 만든 소스의 통합과 같은 문제를 해결하기 위해
저장소를 만들어 그곳에 소스를 저장해 소스 중복이나 여러 문제를 해결하기 위한 Software이다
하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 툴
프로젝트 소스는 SVN 서버의 Trunk라는 곳에 위치 -> 자신의 Local에 Trunk의 소스를 다운 받아(update) 수정 및 추가 후
다시 업로드(commit)하는 방식
자신만의 소스를 다른 개발자들과 떨어져서 작업하려면 Branch(원 소스의 나뭇가지)를 만들어 작업 후 자기자신만 접근하여
개발하며 완성되면 Merge 기능을 사용하여 Trunk와 소스를 합치면 된다
A가 자신이 수정한 소스나 폴더를 Commit하면 B는 해당 소스를 Update받으면 최신의 소스를 받아올 수 있다
버전관리의 목적
작업 이력 관리
문제 파악
예전 버전의 파일 복원
수정한 부분 검증
협업 지원
버전관리 툴 용어
Repository: 프로젝트 파일 및 변경 정보가 저장되는 장소
Import: 빈 Repository에 맨 처음 파일들을 채우는 것
Export: 버전 관리 파일들을 뺀 순수 파일만 빼내는 것
Checkout: 저장소에서 최신 버전의 소스코드를 최초로 받아오는 것 / Repository에서 프로젝트 관련 파일들을 받아온다
Update: 로컬 저장소에 있는 파일들을 저장소의 최신 버전으로 받아 오기
Commit: 로컬 저장소의 변경된 내용을 서버로 전송 / Checkout한 파일의 수정사항을 갱신
Revert: 로컬 저장소의 내용을 이전 상태로 돌림
Add: 버전관리 대상으로 파일 등록
Trunk: 개발 소스를 commit 했을 때 개발 소스가 모이는 곳 / 프로젝트에서 가장 중심이 되는 디렉토리, 소스와 파일 포함
Branch: trunk에서 분리/복사한 소스로 버전별 배포판을 만들거나 trunk와 별도로 운영환경을 위한 안정화된 소스 관리 목적
으로 사용
Tag: 특정 시점의 상태 보존 목적으로 사용 장기적으로 1.0, 1.1 등 버전 별로 소스 코드를 따로 저장
특정 시점에서 프로젝트의 스냅샷을 찍어두는 것
출처: https://na27.tistory.com/211 [na27]