문서의 제목 나눔고딕B, 54pt

Similar documents
슬라이드 1

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

1. 도구개요 STAF Testing 소개 각테스트대상분산환경에데몬을사용하여테스트대상프로그램을통해테스트를수행하고, 통합하며자동화하는 프레임워크 주요기능 테스트통합및자동화 카테고리 Testing 세부카테고리테스트설계및실행 커버리지 Test Integration / Aut

슬라이드 1

슬라이드 1

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint 프레젠테이션

슬라이드 1

Software Verification Team 오준 임국현 주영진 김슬기

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

BMP 파일 처리

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

리눅스기초

문서의 제목 나눔고딕B, 54pt

Microsoft PowerPoint - [2009] 02.pptx

untitled

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

PowerPoint 프레젠테이션

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

Microsoft Word - src.doc

문서의 제목 나눔고딕B, 54pt

PowerPoint 프레젠테이션

문서의 제목 나눔고딕B, 54pt

PowerPoint 프레젠테이션

6주차.key

PowerPoint 프레젠테이션

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Microsoft PowerPoint - chap-02.pptx

4S 1차년도 평가 발표자료

fprintf(fp, "clf; clear; clc; \n"); fprintf(fp, "x = linspace(0, %d, %d)\n ", L, N); fprintf(fp, "U = [ "); for (i = 0; i <= (N - 1) ; i++) for (j = 0

2. 기능요약 웹기반의서비스로써, 손쉬운일정관리및프로젝트관리를지원하는도구 주요기능일정관리그룹관리다중프로젝트관리체크리스트투표기능첨부파일 지원내용지원지원지원지원지원지원 1

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

1. 도구개요 Implementation Eclipse CDT 소개 CDT(C/C++ Development Toolkit) 는 Eclipse plug-in 중하나로 C/C++ 개발을위한통합개발환경 (IDE : Integrated Development Environmen

The Pocket Guide to TCP/IP Sockets: C Version

untitled

Tcl의 문법

git CLI 로간단하게조작하기! by 윤선지

EndNote X2 초급 분당차병원도서실사서최근영 ( )

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Remote UI Guide

PowerPoint 프레젠테이션

문서의 제목 나눔고딕B, 54pt

PowerPoint Presentation

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

소개 Mac OS X (10.9, 10.10, 10.11, 10.12) 와 OKI 프린터호환성 Mac OS X 를사용하는 PC 에 OKI 프린터및복합기 (MFP) 제품을연결하여사용할때, 최고의성능을발휘할수있도록하는것이 OKI 의목 표입니다. 아래의문서는 OKI 프린터및

OCW_C언어 기초

Sena Technologies, Inc. HelloDevice Super 1.1.0

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap-02.pptx

PowerPoint 프레젠테이션

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

Microsoft PowerPoint - chap01-C언어개요.pptx

2. 기능요약 Parallel 빌드지원등빌드자동화기능을지원하며다양한도구 ( 형상관리도구, Issue Tracker, Test 도구, IDE) 와의연동을지원함. 주요기능 Parallel 빌드지원 ( 다수프로젝트동시빌드 ) 분산빌드웹기반관리 알림형상관리도구지원

Solaris Express Developer Edition

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

Microsoft PowerPoint - 10Àå.ppt

제1장 Unix란 무엇인가?

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

PowerPoint 프레젠테이션


PowerPoint 프레젠테이션

Studuino소프트웨어 설치

NTD36HD Manual

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

슬라이드 1

ISP and CodeVisionAVR C Compiler.hwp

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

github_introduction.key

CODESYS 런타임 설치과정

[ 컴퓨터시스템 ] 3 주차 1 차시. 디렉토리사이의이동 3 주차 1 차시디렉토리사이의이동 학습목표 1. pwd 명령을사용하여현재디렉토리를확인할수있다. 2. cd 명령을사용하여다른디렉토리로이동할수있다. 3. ls 명령을사용하여디렉토리내의파일목록을옵션에따라다양하게확인할수

로거 자료실

슬라이드 1

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

슬라이드 1

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

³»Áö¼öÁ¤

JDK이클립스

1. 도구개요 Configuration & Version Management CVS 소개 버전컨트롤시스템으로소스코드나기타리소스의히스토리를쉽게관리할수있도록도와주는도구 주요기능 버전관리, 변경관리, 소스관리 카테고리 Configuration & Version Managem

문서의 제목 나눔고딕B, 54pt

ICAS CADWorx SPLM License 평가판설치가이드

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Microsoft Word - Armjtag_문서1.doc

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

PowerPoint 프레젠테이션

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

vRealize Automation용 VMware Remote Console - VMware

PowerPoint 프레젠테이션

<57696E646F7773C8AFB0E6BFA1BCADC0C7204F70656E53534CBCB3C4A12E687770>

Orcad Capture 9.x

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Transcription:

1. 도구개요 2. 기능요약 3. 도구실행환경 4. 도구설치방법 6. 도구활용예제 7. FAQ 8. 도구평가 9. 용어집

1. 도구개요 소개 소프트웨어개발을위한크로스 - 플랫폼분산버전관리도구. 대부분은파이썬을사용하여개발되었고, diff 부분은 C 를사용하여개발. 기본적으로명령줄인터페이스프로그램 주요기능 버전관리기능 카테고리 세부카테고리버전관리 커버리지 도구난이도중 라이선스형태 / 비용 Generic Public License v2 / 무료사전설치도구 - 운영체제 Windows, Linux, Mac OS, UNIX 최신버전 2.8.1 (2013. 12) 특징 크로스플랫폼, 서버가불필요, 분산버전관리시스템 원격저장소와작업디렉토리의구분이없음 적용회사 / 프로젝트 - 관련도구 제작사 공식홈페이지 Subversion, CVS, Git selenic http://mercurial.selenic.com 2

2. 기능요약 소프트웨어개발을위한크로스 - 플랫폼분산버전관리도구 주요기능 분산저장소관리 지원여부 지원 폴더및저장소관리지원 ( 폴더관리와동일 ) 저장소이력공유 기존저장소복사본만들기 충돌하는저장소병합 지원 지원 지원 3

3. 도구실행환경 JDK(Java development kit) 상에서설치및구현이가능 다양한 OS 를지원 Windows : Windows XP / Windows 7 (32, 64-bit 모두지원 ) Linux : 32, 64-bit 지원 Mac OS X : 32, 64-bit 지원 UNIX : 32, 64-bit 지원 Command Line 에서동작 저장소관리프로그램 : 저장소설치불필요 Windows / Linux / Mac OS / UNIX 4

4. 도구설치방법 세부목차 4.1 다운받기 4.2 설치하기 4.3 설치확인하기 5

4. 도구설치방법 4.1 다운받기 (1/2) 홈페이지에서 Download 메뉴클릭 http://mercurial.selenic.com/ 본매뉴얼에서는 Windows 용 2.8.1 버전설치 6

4. 도구설치방법 4.1 다운받기 (2/2) 설치파일선택 본매뉴얼에서는 Windows 용 64bit Inno Setup Installer 다운로드 7

4. 도구설치방법 4.2 설치하기 (1/2) 설치파일실행 8

4. 도구설치방법 4.2 설치하기 (2/2) 설치파일실행 9

4. 도구설치방법 4.2 설치확인 설치확인 Command 창에서 hg 실행하여정상실행확인 10

세부목차 5.1 의주요기능 5.2 예제소개 5.3 기존저장소의복사본만들기 5.4 저장소의이력알아보기 5.5 저장소의변경 5.6 저장소의변경공유 5.7 다른사람과의변경공유 5.8 변경을병합하기 5.9 충돌하는변경병합하기 5.10 주요추가기능 (2.8.1) 11

5.1 의주요기능 의주요기능 기존저장소의복사본만들기 저장소변경하기 저장소공유및복사본만들기 12

5.2 예제소개 의기능을소개하기위해홈페이지에있는한글입문서를예제로사용 본예제에서는기존저장소의복사본을만들고저장소를변경하고, 공유하며병합하는방법을다루도록함. 13

5.3 기존저장소의복사본만들기 (1/3) 저장소의복사본을위치시킬폴더 ( 디렉토리 ) 를생성하고복사본을만듦. 본예제에서는 C:\testwork 에저장소의복사본을만들도록함. selenic.com 에올려져있는 hello, world 저장소를복제하도록함. 커맨드라인에 hg clone http://www.selenic.com/repo/hello my-hello 를입력. 14

5.3 기존저장소의복사본만들기 (2/3) 성공적으로저장소가복제되었다면아래와같은메시지를출력. 폴더 ( 디렉토리 ) 의목록을보면 my-hello 라는폴더 ( 디렉토리 ) 가생성되었음을확인가능. 15

5.3 기존저장소의복사본만들기 (3/3) 폴더 ( 디렉토리 ) 에들어가서내용을확인. my-hello 안에들어있는파일들은저장소에있는파일들과동일한것으로확인가능. 16

5.4 저장소의이력알아보기 (1/8) 저장소의이력을보기위해 log 명령을사용 Log 명령은저장소에일어난모든작업들을요약하여, 최근의일부터시간의역순으로표시 17

5.4 저장소의이력알아보기 (2/8) 각단락은하나의변경집합을나타냄. 변경집합은 1 개이상의파일변경을, 1 개의논리적인단위로모아놓은것. 앞의예제에서는저장소의이력이 2 개의변경집합으로드러남. Changeset 은그변경집합의고유 ID. 콜론앞의최초숫자는수정번호. 수정번호는변경집합을가리키기위한단순한방법. 수정번호는저장소안에서만유효한로컬한개념. 콜론뒤의긴 16 진수문자열은 ChangeSetID. 이것은변경집합을가리키며, 변경집합을포함한모든저장소안에서같은값. 만약다른누군가와어떤변경집합에대해의논하려한다면, 수정번호가아닌 ChangeSetID 를사용. tag 는어떤변경집합의임의의이름인꼬리표를나타냄. 어떤변경집합에도 1 개이상의꼬리표를붙이는것이가능. 실제로는변경집합이붙이는일이거의없어서, tag 줄은거의나오지않음. tip 이라는이름이붙은특별한꼬리표는보통 Tip 을가리킴. 이것은저장소안에있는가장새로운변경집합. 다른변경집합을작성하면, 그것이 Tip 이됨. user 는변경집합을작성한사람으로, 자유로운형식의문자열. 보통이메일주소를사용하는데사람의이름이포함되는경우도존재. date 은언제변경집합이작성되었는가를가리킴. 일시정보는변경집합의작성자의지역의시간대로표시. summary 는변경집합의설명의맨처음줄을표시. 이것은변경집합의목적을자신과다른사람들이이해할수있게돕기위해, 변경집합의작성자가작성시입력하는것. 18

5.4 저장소의이력알아보기 (3/8) Log 명령의 v 설정옵션을사용하면더욱자세한이력정보를나타냄. 19

5.4 저장소의이력알아보기 (4/8) --debug 옵션을쓰면모든것이출력 20

5.4 저장소의이력알아보기 (5/8) 상세한출력은기본출력보다더많은필드의정보를포함. changeset 은생략되지않은 ChangeSetID 를표시. Files 는변경집합으로변경된파일들을나열. description 은변경집합의설명을한줄이아닌여러줄로전부나타냄. --debug 출력은상세한출력에더해다음의필드를표시. file+ 는변경집합에서추가된파일을나열. file-는변경집합에서삭제된파일을나열. manifest는변경집합의매니페스트id를표시. 2개의 parent 필드는변경집합의두부모의변경집합ID를표시. 1:0000000000000000000000000000000000000000는무효인부모를참조. 21

5.4 저장소의이력알아보기 (6/8) -r 설정을쓴 log 명령은특정변경집합을표시 첫번째변경집합을보기위해서는 r1 을입력 22

5.4 저장소의이력알아보기 (7/8) -p 설정을쓴 log 명령은, 변경집합에관련된패치를표시 23

5.4 저장소의이력알아보기 (8/8) 최신변경집합의정보를표시하는데 tip 명령을사용할수있음. tip 명령은 log r tip 에의단축이라고생각하면됨. 24

5.5 저장소의변경 (1/10) 여기서의간단한목표는, hello, world 프로그램의출력에한줄더추가하는것. 가장먼저, 이간단한목표를이루기위한프로젝트용으로 my-hello 를복제한 my-hello-newoutput 라고불리는새로운저장소를생성. 25

5.5 저장소의변경 (2/10) 새로운저장소에변경을함. 작업디렉토리에들어가, 메모장같은텍스트에디터를이용하여소스코드를변경. 26

5.5 저장소의변경 (3/10) hello.c 의원래내용 /* * hello.c * * Placed in the public domain by Bryan O'Sullivan * * This program is not covered by patents in the United States or other * countries. */ #include <stdio.h> int main(int argc, char **argv) { printf("hello, world!\n"); return 0; } 27

5.5 저장소의변경 (4/10) main 을편집하여출력하는내용을 1 줄에서 2 줄로변경. ( ) int main(int argc, char **argv) { printf("hello, world!\n"); printf( sure am glad I m using!\n ); return 0; } 위의내용을모두수행하였을경우, 에디터를종료. 이편집으로, 변경집합을만들준비가완료. 28

5.5 저장소의변경 (5/10) 만약작업을중단하여, 어떤변경이변경집합에포함되는지를잊어버렸다면 status 명령을사용. 접두사인 M 이, hello.c 가변경 (modified) 되어다음에변경집합에포함된다는것을표시. 29

5.5 저장소의변경 (6/10) 변경을파기하여원래상태로돌려놓고싶은경우는, revert 명령을써서파일을변경하지않은상태로돌려놓는것이가능. 30

5.5 저장소의변경 (7/10) 변경집합을작성하는행위를반영한다고부름. commit 명령을써서반영을실행. 이것은에디터를열어, 암호와같은줄을몇개표시. 31

5.5 저장소의변경 (8/10) 변경집합을반영하는데에는, 이유를써넣지않으면안됨. 이것은통상변경집합코멘트라고부름. 다음과같이입력. 저장한다음에디터를종료. commit 명령은종료하여아무것도표시되지않음. 만약텍스트를저장하지않고에디터를종료하면, commit 명령은조작을중단하여반영하기전에취소할수있음. 32

5.5 저장소의변경 (9/10) 이상태에서 status 명령을실행. 아무것도없음. 방금가한변경은변경집합에반영되어있으므로, 반영이필요한변경된파일이존재하지않음. 33

5.5 저장소의변경 (10/10) 다음작업을위해, 갱신이력을조사하는것이가능. 반영한변경집합이보임. 새로운변경집합은이저장소에만존재. 34

5.6 저장소의변경공유 (1/5) 원저장소를복제. 35

5.6 저장소의변경공유 (2/5) 각저장소에는 Tip 이무엇인가를아는데에 tip 명령을사용. (Tip 은가장새로운변경집합 ) 이 Tip 의완전한설명을출력하지않게하기위해, -q( 조용하게 ) 옵션을사용 Tip 은다르다는것을알수있음. 36

5.6 저장소의변경공유 (3/5) my-hello-share 로돌아와새로운변경집합을그곳까지넓혀봄. 그러기위해, pull 명령을사용. 이것은다른저장소에있는, 이저장소에는없는변경집합을전부이저장소에끌어오기를위한명령어. 37

5.6 저장소의변경공유 (4/5) 앞에서출력의마지막줄은중요. 은 Pull 을수행한다음작업디렉토리를갱신하지않음. 이것은예를들어저장소가새로운변경집합을포함하고있다고해도, 작업디렉토리의 hello.c 파일은아직이전의 Pull 의내용이라는뜻. 의조언에따라, 이파일 ( 과 Pull 의사이에변경된다른파일 ) 을변경하는것이가능. 38

5.6 저장소의변경공유 (5/5) 업데이트완료 39

5.7 다른사람과의변경공유 (1/3) 저장소간이나사람들사이에변경을공유하는데에는여러가지방법이존재. 그중가장흔한방법으로이메일사용. 변경을반영한다음, 그것을파일로내보내기해서, 그것을첨부파일로서누군가에게이메일로전송가능. 변경을내보내기에는, export 명령사용. 에어떤것을내보내기할까를가리키기위해, 꼬리표나수정번호, 또는 ChangeSetID 를지정. 40

5.7 다른사람과의변경공유 (2/3) 기본적으로, Export 는단순히패치를표시하는것이어서, 보통은출력을파일로리다이렉트함. 이파일은 UnifiedDiff 형식의패치파일로서, 에그것을 import 하는방법을알려주기위한특별한정보를포함. 41

5.7 다른사람과의변경공유 (3/3) 앞에서와같이실행한결과인 patch.diff 파일을주고받으면됨. 메일을받는사람은첨부된파일을저장하고저장소에그변경집합을가져오기위해 import 명령을사용. 42

5.8 변경을병합하기 (1/5) 병합할것을작성. my-hello 저장소를한번더복제. 43

5.8 변경을병합하기 (2/5) my-hello-desc 디렉토리안에있는 hello.c 파일을수정 두번째줄에있는주석 * hello.c 를 * hello.c hello, world 로수정 저장한다음편집기를종료하여변경을반영 44

5.8 변경을병합하기 (3/5) commit 명령에 m 옵션을사용해서편집기를띄우지않게하여시간을절약 45

5.8 변경을병합하기 (4/5) my-hello-new-output 저장소의 hello.c 에변경이한건, my-hello-desc 저장의 hello.c 에다른변경이한건존재. 46

5.8 변경을병합하기 (5/5) update 로병합. 47

5.9 충돌하는변경병합하기 (1/6) 은더욱복잡한병합도가능. 인위적으로충돌하는상황을연출. my-hello 를복제하는일부터시작. 48

5.9 충돌하는변경병합하기 (2/6) my-hello-not-cvs 디렉토리안의 hello.c 파일을오픈. main을아래와같이변경 int main(int argc, char **argv) { printf( hello, world\n ); printf( sure am glad I m not using CVS!\n ); return 0; } 이시점에서, my-hello-new-output 저장소의 hello.c 에변경이한건있고, my-hellodesc 저장소의 hello.c 에다른변경이한건존재. 49

5.9 충돌하는변경병합하기 (3/6) my-hello-desc 디렉토리내에서 my-hello-new-output 로부터변경을 import 해도문제없음. 50

5.9 충돌하는변경병합하기 (4/6) Update. hg merge 를실행할필요없음. 그러나, 각변경집합에따라같은소스파일의같은줄이다른식으로변경되어있기에 은자동적으로병합하는것이가능하지않음. 51

5.9 충돌하는변경병합하기 (5/6) hg merge 명령어를실행. 52

5.9 충돌하는변경병합하기 (6/6) 은파일당 3-way 병합을사용. 이것은병합처리에 3 개의입력파일이있는것을의미. 로컬파일 ( 현재의저장소에서옴 ) 다른파일 ( 병합될저장소에서옴 ) 기본파일 ( 가지가갈라지기전의최신파일 ) 만일병합프로그램을설치하지않고있다면, 텍스트에디터가떠서, 병합할필요가있는파일을오픈. 이것을손수편집하는것은잘못할가능성이높음. 편집기를종료한다음 hg rollback 명령을써서 Pull 의결과를취소한다음, 병합프로그램을설치하여, 한번더시도해보는것이가장좋음. 주의 : 은어떤프로그램을실행할필요가있는지를알아보기위해 HGMERGE 환경변수와설정파일을조사. 만약아무것도설정되어있지않다면, hgmerge 스크립트를실행. 53

5.10 주요추가기능 (2.8.1) 은기본적으로 command line 방식의버전관리도구로 UI 상에서의큰변화는없으며, command line 명령어의기능수정또는성능개선이업데이트내용의대부분을차지 기존의 2.4.1 이후의 2.5, 2.6, 2.7, 2.8 에서의주요명령어에대한변경내용은다음과같으며자세한내용은 http://mercurial.selenic.com/wiki/whatsnew 참조 commit: show active bookmark in commit editor helper text commit: enable --secret option export: export working directory parent by default export: show 'Date' header in a format that also is readable for humans log: add a log style that is default+phase log: show style list when unknown style specified log: make file log slow path usable on huge repos merge: apply non-interactive working dir updates in parallel pull: for pull --update with failed update, print hint if any summary: augment output with info from extensions update: add tracking of interrupted updates update: add error message for dirty non-linear update with no rev 54

6. 도구활용예제 세부목차 6.1 예제설명 6.2 프로젝트시작 6.3 프로젝트공유준비 6.4 프로젝트개별작업시작 55

6. 도구활용예제 6.1 예제설명 (1/2) 예제시스템 : 철수와영희의협동프로젝트 예제설명 - 철수와영희는이번팀프로젝트를같이작업하게됨. - 다른업무가잦은영희의사정상만날시간이부족해서각자의집에서프로그램을작성하기로함. - 회의시간이부족한두사람은형상관리도구를사용하기로결정. - 철수는자신이알던형상관리도구인 을사용하기로함. - 철수는자신의컴퓨터에서버를설치하고영희와함께프로젝트를작업하기로결정. 56

6. 도구활용예제 6.2 프로젝트시작 철수와영희는콘솔에 hello, world! 를출력하는기능을구현한뒤, 그기능을확장 철수와영희는다음과같은소스를기반으로작업 selenic.com에올라와있는소스를기반으로작업하기로함. #include <stdio.h> int main(int argc, char **argv) { printf("hello, world!\n"); return 0; } 철수와영희는현재동일한소스를보유 철수와영희는각자따로소스코드를작업하고, 작업한결과물을서로공유하기를원함 57

6. 도구활용예제 6.3 프로젝트공유준비 철수와영희는각각시스템에 을설치. 58

6. 도구활용예제 6.4 프로젝트개별작업시작 (1/2) 철수는 selenic 의프로젝트저장소를자신의프로젝트저장소로복사. 커맨드라인에 hg clone http://www.selenic.com/repo/hello chulsoo-hello 59

6. 도구활용예제 6.4 프로젝트개별작업시작 (2/2) 철수는 hello, world! 출력프로그램을확장. hello, world! & hello younghee. 라고출력하게소스코드를변경. commit 명령을수행해변경집합을작성. 자동실행되는메모장에코멘트를추가. 60

6. 도구활용예제 6.4 프로젝트공유 (1/5) 철수는방금변경한소스를공유하고싶어함. 변경된소스가있는저장소를복제. chulsoo-hello 폴더를 chulsoo-hello-share 로똑같이복제. 61

6. 도구활용예제 6.4 프로젝트공유 (2/5) 변경된소스를공유하기위해철수는 chulsoo-hello-share 를 export 시킴. hg export tip 의실행결과를파일로리다이렉션해서 patch.diff 에저장. 62

6. 도구활용예제 6.4 프로젝트공유 (3/5) 철수는 patch.diff 파일을메신저로영희에게전송. 영희는자신의작업폴더인 younghee-hello 에 patch.diff 파일을복사. 63

6. 도구활용예제 6.4 프로젝트공유 (4/5) 영희는 import 명령을통해 patch.diff 를적용. 64

6. 도구활용예제 6.4 프로젝트공유 (5/5) 영희는 hello.c 파일을열어변경이적용되었는지확인. 철수는소스코드변경이영희에게적용되었음을알수있음. 65

7. FAQ 질문 1) 커맨드라인으로작업하는게너무어렵습니다. 작업을보조해주는툴들은없나요? 답변 1 : 이클립스플러그인으로제공되는툴이있습니다. http://trac-hg.assembla.com/mercurialeclipse 를참조하시기바랍니다. 기본적인사용법은이클립스 cvs 와유사합니다. 질문 2) 머큐리얼에대해서더알아보고싶습니다. 어디를참고해야하나요? 답변 2 : 머큐리얼홈페이지가있습니다. http://www.selenic.com/mercurial/wiki/ 를참조하시기바랍니다. 질문 3) 사용중에 Hg 를사용하는데, Hg 에의미가있나요? 답변 3 : 도구의이름은 입니다. 머큐리얼의명령으로써, 수은의원소기호인 Hg 를사용하여표현합니다. 66

8. 도구평가 활용성 서버필요없이분산된코드의버전관리가가능 윈도우에서사용가능함에도, UI 없이콘솔창진행으로약간의불편함이있음 범용성 사용도구의제약사항이적고저장소변경등여러상황에서사용가능 호환성 각 OS 마다개별파일을제공함으로 OS 제약사항이적음 성능 Text 기반처리로빠른성능을보임 기타 버전관리도구중특이하게도분산버전관리및저장소변경등을지원 도구평가의견 을이용해서분산버전관리가능 은진보된브랜칭 (branching) 과머징 (merging) 기능을가짐 67

9. 용어정리 본매뉴얼에서사용하고있는용어의정리 병합여러다른버전들의소스를충돌없이하나로합치는것. CVS Commit 동시버전관리시스템 (Concurrent Versioning System) 으로도알려져있으 며, 버전관리시스템을구현. 보통소프트웨어프로젝트를진행할때, 파 일로이뤄진모든작업과모든변화를추적하고, 여러개발자 ( 지역적으로 떨어진 ) 가협력하여작업할수있게함 check-out 한 source 를수정, file 추가, 삭제등을한뒤저장소에저장하여 update 하는것. Commit 을하면전체 revision 이 1 증가함 68