매뉴얼

2장. 기본 버전 관리 개념

목차

저장소
버전 관리 모델
파일 공유 문제
잠금-수정-잠금 해제 방식
복사-수정-병합 방식
Subversion은 무엇을 할까요?
Subversion 작동 방식
작업 사본
저장소 URL
리비전
작업 사본이 저장소를 추적하는 방법
요약

이 장은 Subversion 서적에 있는 동일한 장을 약간 수정한 버전입니다. Subversion 서적의 온라인 버전은 다음에서 확인할 수 있습니다: https://svnbook.red-bean.com/ .

이 장은 Subversion에 대한 짧고 가벼운 소개입니다. 버전 관리가 처음이라면 이 장이 분명 도움이 될 것입니다. 일반적인 버전 관리 개념에 대한 논의로 시작하여 Subversion의 특정 아이디어로 나아가고, Subversion 사용의 몇 가지 간단한 예를 보여줍니다.

이 장의 예시에서는 사람들이 프로그램 소스 코드 모음을 공유하는 것을 보여주지만, Subversion은 어떤 종류의 파일 모음이든 관리할 수 있으며, 컴퓨터 프로그래머를 돕는 것에만 국한되지 않는다는 점을 명심하십시오.

저장소

Subversion은 정보 공유를 위한 중앙 집중식 시스템입니다. 핵심은 저장소이며, 이는 데이터의 중앙 저장소입니다. 저장소는 파일 및 디렉토리의 일반적인 계층 구조인 파일 시스템 트리 형태로 정보를 저장합니다. 수많은 클라이언트가 저장소에 연결하여 이 파일들을 읽거나 씁니다. 데이터를 기록함으로써 클라이언트는 정보를 다른 사람들에게 제공하고, 데이터를 읽음으로써 클라이언트는 다른 사람들에게서 정보를 받습니다.

그림 2.1. 일반적인 클라이언트/서버 시스템

A Typical Client/Server System

그렇다면 왜 이것이 흥미로울까요? 지금까지는 일반적인 파일 서버의 정의처럼 들립니다. 실제로 저장소는 일종의 파일 서버이지만, 일반적인 종류는 아닙니다. Subversion 저장소를 특별하게 만드는 것은 저장소에 기록된 모든 변경 사항을 기억한다는 점입니다. 즉, 모든 파일에 대한 모든 변경 사항, 심지어 파일 및 디렉토리의 추가, 삭제, 재배열과 같은 디렉토리 트리 자체에 대한 변경 사항까지 기억합니다.

클라이언트가 저장소에서 데이터를 읽을 때, 일반적으로는 파일 시스템 트리의 최신 버전만 볼 수 있습니다. 하지만 클라이언트는 파일 시스템의 이전 상태를 볼 수 있는 기능도 가지고 있습니다. 예를 들어, 클라이언트는 다음과 같은 과거 질문을 할 수 있습니다: 지난 수요일에 이 디렉토리에는 무엇이 들어 있었지? 또는 이 파일을 마지막으로 변경한 사람은 누구였고, 어떤 변경 사항을 만들었지? 이러한 질문들은 버전 관리 시스템의 핵심입니다: 즉, 시간에 따른 데이터 변경 사항을 기록하고 추적하도록 설계된 시스템입니다.

TortoiseSVN 홈페이지

한국어 中文