👨🏻‍💻 programming/◽ 툴(tool)

(VCS) svn 사용 방법 익히기!

핑크코냥 2022. 12. 31. 23:01
728x90

SVN의 용어 정리

1. 저장소(Repository) :  모든 프로젝트의 프로그램 소스들은 이 저장소 안에 저장이 된다. 코드뿐만이 아니라 코드의 변경 사항도 모두 저장됩니다. 네트워크를 통해서 여러 사람이 접근 할 수 있다.

2. 트렁크(Truck) : 가장 중심이 되는 메인 저장소(메인 코드라인). 브랜치도 트렁크에서 부터 시작이 된다. 

3. 브랜치(Branch) : 나무 가지라는 뜻으로, 트렁크에서 따로 분류에서 개발을 해야할때나 한 부분을 공동 작업을 할 때 역할 분담을 하기 위해 나눌때 사용한다. 이 나눠져 있는 나무 가지는 트렁크로 merge한다. 

4. 태그(Tag, 라벨) : 꼬리표라는 뜻으로, 프로그래을 개발하면서 정기적으로 릴리즈할때 라벨링을 한다. 로그랑 다름. 

Update

현재 설정된 URL에 있는 branch나 truck에 가장 최신의 버전으로 업데이트 한다.

svn Update

 

Commit 

변경된 파일들을 서버에 전송 시키는 작업. 

🔸 visual studio에서 커밋 할 때 확장자 구분하기🔸 
1) .vcxproj : 프로젝트 속성 값(프로젝트 우클릭 -> 설정 들어갔을 때 debug, release .. 속성 변경된 값)
2) .vcxproj.fiters : 프로젝트에서 파일을 추가하면 필터 파일이 생성된다. 솔루션 탐색기 트리 뷰에서 파일이 추가되는 위치를 정의한다. 
3) .vcxprog.user : 사용자 파일이라고 부르며 디버깅 및 배포 설정과 같은 사용자별 속성이 저장이 된다. 

※ 이거 잘 못 올리면 선임들한테 혼난다 .. 난 한 3번 혼남 ^^;;

svn Commit

TortoiseSVN

Tortoise SVN

  1.  Show log : 말 그대로 선택한 파일이나 폴더의 지금까지 커밋 리스트를 확인 할 수 있음. 리비전 정보, 작성자, 시간, 함께 커밋한 목록등을 확인할 수 있음. 
  2.  Repo-browser :
  3.  Check for modification : 수정된 파일이나 폴더를 확인 할 수 있음.
  4.  Revision Graph

-----------------------------------------------

  1. Resolve 파일이 자동으로 수정되는 것이 아니고 충돌이 났을때 수정 완료 되었다고 SVN에 알리는 기능이다. 수정완료가 되었으면 부가적으로 생성된 파일들은 제거가 된다.
  2. Update to revision : 특정 버전으로 업데이트 할 수 있다. 
  3. Rename : 파일 이름 변경한다. 벗! 실제 변경사항은 커밋시에 적용이 된다.
  4. Delete 
  5. Revert : 수정된게 있다면 현재 업데이트 한 버전으로 되돌아간다. 서버와 상관없으므로 사용할 때 걱정하지 말아도 된다.
  6. Clean Up: 비정상적으로 SVN의 액션이 종료되었을 때 정리해 주는 명령어이다. 
  7. Get lock 
  8. Release lock
🔸 SVN Lock 🔸
SVN을 사용할 때 가장 두려운 부분은 공동작업을 진행할 때가 아닐 수가 없다. 
너무 많은 충돌이 나면.. 해결하기 많이 난감하기 때문이다, 이런 상황을 방지하기 위해 Lock 기능을 제대로 알고 사용 해야 한다. 
- 공통 프로젝트 진행 시 작업 전에 svn update는 필수. 
- lock에 걸려 있으면 cleanup 자체가 동작하지 않음.
- commit 할 때 다른 사람이 commit하지 못하도록 하는 기능. 
- 본인이 commit을 하기 전에 lock을 하고 수정 후 commit 후 releaselock을 해서 권한을 넘겨줌.

-----------------------------------------------

  1. Branch/tag : Brach는 truck에서 뻗어나온 나무가지를 뜻한다. truck 디렉토리에서 따로 빼서 개발해야하는 경우에 사용한다. Braches 디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 개발을 하게 된다. Tag는 라벨과 같은 꼬리표이다.대부분 릴리즈 할 때 날짜나 특정 코드를 적어 버전 별로 소스 코드나 자료들을 저장하는 공간이다. 
  2. switch : 서버내의 다른 브랜치나 태그로 변경할 때 사용함. 
  3. Merge: Trunk에서 분기된 Brach를 다시 Truck로 합치는 작업을 한다.
  4. Export : SVN폴더가 제외된 배포용 소스트리를 받아오는데 쓰인다. 필요시 특정 버전에 대한 코드만 가져올수 있다. 
🔸 Export와 Checkout의 차이점 🔸
-  Checkout: 맨 처음, 서버의 저장소에 보관된 소스를 로컬로 가져올 때 사용한다. 
-  Export: 체크아웃과 달리 버전관리 파일을 뺀 순수한 소스만 가져온다. 소스를 압축하여 릴리즈 할 때 사용한다. 

------------------------------------------------

  1. Add: 프로젝트 파일이나 소스, 디렉토리를 추가한다. 반드시 svn commit을 해주어야 한다. 
  2. Copy URL to clipboard 
  3. Unversion and add to ignore list 

------------------------------------------------

 

728x90