320 likes | 411 Views
형상관리 도구 Perforce 개요. Client/Server (over network) 극소 변경 작업 작업공간 관리 파일간의 브랜치 멀티 플래폼 지원 빠르다 !. Perforcec 의 특징. 구 조 The Perforce Client-Server Model. Perforce client. Perforce server. Perforce client. Perforce client. Perforce client. Depot. Depot. Database.
E N D
형상관리 도구 Perforce 개요 Perforce Overview
Client/Server (over network) 극소 변경 작업 작업공간 관리 파일간의 브랜치 멀티 플래폼 지원 빠르다! Perforcec 의 특징 Perforce Overview
구 조 The Perforce Client-Server Model Perforce client Perforce server Perforce client Perforce client Perforce client Perforce Overview
Depot Depot Database 구 조The Perforce Server Perforce server Perforce Overview
p4win p4 “Joe2” Workspace “Joe1” Workspace 구 조Perforce Client Programs Perforce Overview
극소 변경 작업들Changelists Changelist 3567 src/zoo/zebra.c#23 edit src/zoo/chimp.c#1 add src/zoo/walrus.c#14 edit src/zoo/lion.c#3 delete src/zoo/hippo.c#9 edit Perforce Overview
Client 작업공간 생성 Editor form Command p4 client Client: laura-ws1 Date: 1998/06/15 12:39:47 Owner: laura Description: Laura’s first client workspace. Root: c:\demo Options: nomodtime noclobber View: //depot/main/jam/... //laura-ws1/main/jam/... Perforce Overview
작업공간 등록 p4 sync //depot/main/jam/regexp.c#4 - added as c:\demo\main\jam\regexp.c //depot/main/jam/regexp.h#2 - added as c:\demo\main\jam\regexp.h //depot/main/jam/RELNOTES#77 - added as c:\demo\main\jam\RELNOTES //depot/main/jam/rules.c#5 - added as c:\demo\main\jam\rules.c and so on... Perforce Overview
작업 파일들 수정 cd c:\demo\main\jam p4 edit rules.c regexp.h //depot/main/jam/rules.c#5 - opened for edit //depot/main/jam/regexp.h#2 - opened for edit vi rules.c vi regexp.h Perforce Overview
신규 파일들 추가 vi alias.c p4 add alias.c //depot/main/jam/alias.c#1 - opened for add p4 add-t binarylogo.bmp //depot/main/graphics/logo.bmp#1 - opened for add Perforce Overview
파일들 삭제 ls lists.c mkjambase.c parse.h variable.c lists.h mkjambase.h rules.h variable.h make.c newstr.c scan.c yyacc make.h newstr.h scan.h make1.c option.c search.c p4 delete rules.h parse.h //depot/main/jam/rules.h#3 - opened for delete //depot/main/jam/parse.h#9 - opened for delete Perforce Overview
작업 파일들 복구 p4 revert regexp.h alias.c parse.h //depot/main/jam/regexp.h#2 - was edit, reverted //depot/main/jam/alias.c#1 - was add, abandoned //depot/main/jam/parse.h#9 - was delete, reverted Perforce Overview
작업공간 파일들 작업 이력 조회 p4 opened //depot/main/jam/hash.c#2 - edit default change (text) //depot/main/jam/check.c#1 - add default change (text) //depot/main/jam/execnt.c#9 - delete default change (text) Perforce Overview
변경사항 조회 p4 diff hash.c ==== //depot/main/jam/hash.c#2 - c:\demo\main\hash.c ==== 76c76 < TARGET target, t = ⌖ --- > TARGET target, *t = ⌖ Perforce Overview
Depot 5489 5490 5491 rules.c#2 check.c#1 Workspace 5492 execmac.c#2 5493 5494 5495 5496 매일작업 마감변경리스트 제출 Perforce Overview
변경리스트 제출 p4 submit Change 5085 created with 3 open file(s). Submitting change 5085. add //depot/main/jam/check.c#1 delete //depot/main/jam/execmac.c#2 edit //depot/main/jam/rules.c#6 Change 5085 submitted. Change: new Description: <enter description here> Files: //depot/main/jam/check.c # add //depot/main/jam/execmac.c # delete //depot/main/jam/rules.c # edit Added “check” function. Perforce Overview
파일 병합About “resolve” • The resolve command • When to use resolve: • After a failed submit • After re-syncing opened files • When integrating between branches Perforce Overview
joe-ws ann-ws depot foo.c#3 foo.c#4 sync edit submit foo.c sync edit foo.c submit foo.c resolve submit foo.c#5 제출 실패 Perforce Overview
분석 명령어 p4 resolve c:\demo\main\jam\rules.c - merging //depot/main/jam/rules.c#7 Diff chunks: 0 yours + 0 theirs + 0 both + 1 conflicting Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) [e]: Perforce Overview
파일 병합Conflict markers in the merged file theirs yours # include "jam.h" # include "option.h" # include "patchlev.h" # include "make.h" # include "jam.h" # include "option.h" # include "patchlevel.h" # include "make.h" merged result (after editing) # include "jam.h" # include "option.h" >>>> ORIGINAL foo.c#3 ==== THEIRS foo.c#4 # include "patchlev.h" ==== YOURS # include "patchlevel.h" <<<< # include "make.h" # include "jam.h" # include "option.h" # ifdef FATFS # include "patchlev.h" # else # include "patchlevel.h" # endif # include "make.h" Perforce Overview
Inter-File Branching • Branching a codeline • Propagating changes from one codeline branch into another Perforce Overview
//depot/rel1/... //depot/main/... rel1 main 브랜치 와 통합Branching a Codeline Perforce Overview
rel2 rel1 main 브랜치 와 통합브랜치를 통한 변경 전개 Perforce Overview
대상 브랜치 를 위한 Client 점검 p4 client Client: jim-ws Description: Jim’s Release 1.0 workspace. Root: c:\demo View: //depot/main/... //jim-ws/main/... //depot/rel1/... //jim-ws/rel1/... Is the target branch in this list? Perforce Overview
새 브랜치 작성 p4 integ //depot/main/... //depot/rel1/... //depot/rel1/regexp.h#1 - branch/sync from //depot/main/regexp.h#3 //depot/rel1/rules.c#1 - branch/sync from //depot/main/rules.c#7 //depot/rel1/rules.h#1 - branch/sync from //depot/main/rules.h#4 …and so on p4 submit ... Perforce Overview
workspace depot sync //depot/main/... rel1/foo.c#3 resolve main/foo.c#9 submit foo.c editor “base” “yours” rel1/foo.c#4 foo.c “theirs” “merged” main/foo.c#10 foo.c “result” integrate //depot/rel1/... //depot/main/... Perforce Overview
브랜치 들 간의 변경 전달 p4 sync //depot/main/... //depot/main/... - files up-to-date. p4 integ //depot/rel1/... //depot/main/... //depot/main/make.c#4 - integrate from //depot/rel1/make.c#2,#3 //depot/main/make1.c#7 - integrate from //depot/rel1/make1.c#2 p4 resolve ... p4 submit ... Perforce Overview
브랜치 와 병합Integrating by Branch View • A way to store and reuse source/target branch relationships • To use branch views: • create branch view spec • use branch view name with integrate command Perforce Overview
브랜치 뷰 명세 작성 branch view name p4 branch r1 Branch: r1 Description: Release 1 branch for Server & API View: //depot/main/svr/... //depot/rel1/svr/... //depot/main/api/... //depot/rel1/api/... target paths source paths Perforce Overview
브랜치 명세 이용 p4 integ -b r1 …instead of: p4 integ //depot/main/svr/… //depot/rel1/svr/… p4 integ //depot/main/api/… //depot/rel1/api/… And: p4 integ-r -b r1 …instead of: p4 integ //depot/rel1/svr/… //depot/main/svr/… p4 integ //depot/rel1/api/… //depot/main/api/… Perforce Overview
Multi-platform Support • Runs on zillions of platforms! • If we don't run on yours, let us know and we'll port it! Perforce Overview
Summary • Fast • Scalable • Intuitive • Highly portable • Low administration • Excellent technical support Perforce Overview