[SVN] Subversion

2023. 5. 8. 14:58·Devops/Git & SVN

SVN이란?

SVN은 Subversion의 줄임말로 형상관리/소스 관리 툴이다

하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 툴

프로젝트 소스는 SVN 서버의 Trunk라는 곳에 위치, 자신의 Local에 Trunk의 소스를 다운받아(update) 수정 및 추가 후 다시 업로드(commit)하는 방식

 

자신만의 소스를 다른 개발자들과 떨어져서 작업하려면 Branch를 만들어 작업 후 자기 자신만 접근하여 개발하며,

완성되면 Merge 기능을 사용하여 Trunk와 소스를 합치면 된다

 

용어

Repository

- 파일들이 저장되는 원격 저장소

 

Revision

- 0부터 1씩 증가하는 유일한 값

- 저장소 내 변경이 발생했을 때 마다 증가한다

- Merge 등을 할 때 기준이 될 수 있다

- 가장 최근의 리비전을 HEAD Revision이라고 한다

 

Working Copy

- Repository에서 체크아웃을 통해 내려받은 개발자 로컬 PC에 있는 복사본

 

Checkout

- 원격 저장소(Repository)의 파일을 로컬 저장소(Working Copy)로 내려받는다

 

Add

- Local 파일을 서브버전이 관리하는 파일로 등록한다

 

Update

- Local의 파일을 Repository와 비교하여 최신 버전의 상태로 갱신한다

- 동일한 파일을 Repository와 Local 에서 동시에 변경한 경우 서브버전에서 자동으로 Merge 해주지만 서브버전에서 Merge를 할 수 없을 경우 conflict 상태로 변경될 수 있다

 

Commit

- Local 파일의 변경을 Repository에 저장한다

- 작업이 정상적으로 완료되면 Revision이 증가한다

 

trunk

- 보통 운영중인 안정화된 버전의 소스가 보관되는 디렉터리

 

branches

- 주로 신규 기능 개발, 실험적인 작업을 위한 소스가 저장되는 디렉토리

- 작업이 완료되면 trunk 디렉터리로 merge한다

 

tags

- 특정 시점의 소스를 보관하기 위해 사용되는 디렉토리

- 우리가 소프트웨어 제품 유지보수에서 정기적으로 버전을 릴리즈 한다면 사용할 일이 있겠지만, SM/SI를 하면 사용할 일이 많지 않다

 

Merge

- branch 로 분리된 source에 대해 각각의 변경 내용을 현재의 작업에 병합하고자 할 때 유용하다

 

Locking

- 잠금상태

 

Conflict

- 충돌 상태

 

이클립스 SVN

Synchronize with Repository(동기화)

- 서버에 있는 소스와 로컬 소스의 싱크를 맞춘다

 

Commit

- 서버로 나의 로컬 소스를 올리는 작업

 

Update

- 서버의 소스를 나의 로컬로 옮기는 작업

 

Override and Commit

- 서버를 무시하고 로컬에 있는 파일을 서버에 덮어쓰는 작업

 

Override and Update

- 로컬을 무시하고 서버에 있는 파일을 내 로컬로 덮어 쓰는 작업

 

Show History

- 사람들이 업데이트 한 내역을 확인할 수 있다

어느 부분을 업데이트 했고, 어떻게 했는지 상세하게 확인 가능

 

Revert

- 현재 작업했던 내용을 취소하고, 서버 소스를 모두 바꾸어준다

 

SVN 사용법

- 소스를 수정, 커밋하기 전에 우선 업데이트를 받고 작업을 시작해야 한다

- 커밋은 가능한 작은 단위로 자주자주 한다 (출근시 update 퇴근전 Commit)

- 여러 가지 작업을 한 것을 커밋할 일이 있을 때는 최대한 동일한 기능, 같은 성격의 작업끼리 묶어서 커밋해야 한다

 

#필요한 파일만 커밋

 

# 커밋 메시지에는 어떤 것을 수정하고 추가했는지 알 수 있도록 작성

ex)

메인화면 로고 이미지 수정

공통코드 작업

엑셀 업로드 다운로드 기능 추가 작업

 

저작자표시 (새창열림)

'Devops > Git & SVN' 카테고리의 다른 글

[Git] git branch 와 주요 명령어  (1) 2024.08.31
Git 초기화 하기  (0) 2024.07.20
[Github] 이클립스(Eclips)에서 Git 연결 및 커밋하기  (0) 2023.08.31
Git/GitHub  (0) 2023.02.09
'Devops/Git & SVN' 카테고리의 다른 글
  • [Git] git branch 와 주요 명령어
  • Git 초기화 하기
  • [Github] 이클립스(Eclips)에서 Git 연결 및 커밋하기
  • Git/GitHub
soyeon26
soyeon26
  • soyeon26
    개발 일지
    soyeon26
  • 전체
    오늘
    어제
    • 분류 전체보기 (107)
      • Web (22)
        • Web (1)
        • HTTP (0)
      • Language (29)
        • Java Script (3)
        • Type Srcipt (1)
        • Java (25)
      • Front (19)
        • HTML+CSS (4)
        • React (15)
      • Back (41)
        • Spring(Springboot) (9)
        • JSP (21)
        • Database (5)
        • NestJS (6)
      • Devops (6)
        • Docker (1)
        • Git & SVN (5)
      • App (7)
        • Android (7)
      • IT 정보 (3)
  • 블로그 메뉴

    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    중복제거
    과학기술인 등록
    과학기술인번호 조회
    sql강의
    csrvsssr
    프론트엔드
    데이터베이스 강의
    백엔드
    React Next.js
    스프링부트
    Next.js 필요성
    과학기술인 등록번호 발급
    csr과ssr의 차이
    springboot
    강의 후기
    java의 정석
    Java
    SSR
    서블릿
    과학기술인 번호 발급
    Next.js
    SQL강의 추천
    자바스크립트set
    과학기술인등록번호 조회
    김영한
    javascript
    강의후기
    React
    Spring
    인프런
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
soyeon26
[SVN] Subversion
상단으로

티스토리툴바