Download presentation
Presentation is loading. Please wait.
Published byPhillip Allison Modified over 8 years ago
1
Perforce Overview1 형상관리 도구 Perforce 개요
2
Perforce Overview2 Perforcec 의 특징 Client/Server (over network) 극소 변경 작업 작업공간 관리 파일간의 브랜치 멀티 플래폼 지원 빠르다 !
3
Perforce Overview3 구 조 The Perforce Client-Server Model Perforc e client Perforc e client Perforc e client Perforc e client Perforce server
4
Perforce Overview4 구 조 The Perforce Server Database Depot Perforce server
5
Perforce Overview5 “Joe2” Workspace “Joe1” Workspace 구 조 Perforce Client Programs p4 p4win
6
Perforce Overview6 극소 변경 작업들 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
7
Perforce Overview7 Client 작업공간 생성 p4 client Client: laura-ws1 Date: 1998/06/15 12:39:47 Owner: laura Description: Laura’s first client workspace. Laura’s first client workspace. Root: c:\demo Options: nomodtime noclobber View: //depot/main/jam/... //laura-ws1/main/jam/... //depot/main/jam/... //laura-ws1/main/jam/... Editor form Command
8
Perforce Overview8 작업공간 등록 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... and so on...
9
Perforce Overview9 작업 파일들 수정 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
10
Perforce Overview10 신규 파일들 추가 vi alias.c p4 add alias.c //depot/main/jam/alias.c#1 - opened for add p4 add -t binary logo.bmp //depot/main/graphics/logo.bmp#1 - opened for add
11
Perforce Overview11 파일들 삭제 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
12
Perforce Overview12 작업 파일들 복구 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
13
Perforce Overview13 작업공간 파일들 작업 이력 조회 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)
14
Perforce Overview14 변경사항 조회 p4 diff hash.c ==== //depot/main/jam/hash.c#2 - c:\demo\main\hash.c ==== 76c76 < TARGET target, t = ⌖ --- > TARGET target, *t = ⌖
15
Perforce Overview15 매일작업 마감 변경리스트 제출 rules.c#2 check.c#1 execmac.c#2 Workspace Depot 5489 5490 5491 5492 5493 5494 5495 5496
16
Perforce Overview16 변경리스트 제출 p4 submit Change: new Description: Files: //depot/main/jam/check.c # add //depot/main/jam/execmac.c # delete //depot/main/jam/rules.c # edit Added “check” function. 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.
17
Perforce Overview17 파일 병합 About “resolve” The resolve command When to use resolve: After a failed submitAfter a failed submit After re-syncing opened filesAfter re-syncing opened files When integrating between branchesWhen integrating between branches
18
Perforce Overview18 foo.c#3 depot joe-wsann-wsfoo.c#4 foo.c sync edit submit foo.c#5 제출 실패 sync edit foo.c foo.c resolve
19
Perforce Overview19 분석 명령어 p4 resolve c:\demo\main\jam\rules.c - merging //depot/main/jam/rules.c#7 - merging //depot/main/jam/rules.c#7 Diff chunks: 0 yours + 0 theirs + 0 both + 1 conflicting 0 yours + 0 theirs + 0 both + 1 conflicting Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) [e]:
20
Perforce Overview20 파일 병합 Conflict markers in the merged file # include "jam.h" # include "option.h" # include "patchlev.h" # include "make.h" # include "jam.h" # include "option.h" # 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" # include "jam.h" # include "option.h" >>>> ORIGINAL foo.c#3 ==== THEIRS foo.c#4 # include "patchlev.h" ==== YOURS # include "patchlevel.h" <<<< # include "make.h" theirsyours merged result (after editing)
21
Perforce Overview21 Inter-File Branching Branching a codeline Propagating changes from one codeline branch into another
22
Perforce Overview22 브랜치 와 통합 Branching a Codeline main rel1 //depot/main/... //depot/rel1/...
23
Perforce Overview23 브랜치 와 통합 브랜치를 통한 변경 전개 main rel1 rel2
24
Perforce Overview24 대상 브랜치 를 위한 Client 점검 p4 client Client: jim-ws Description: Jim’s Release 1.0 workspace. Jim’s Release 1.0 workspace. Root: c:\demo View: //depot/main/... //jim-ws/main/... //depot/main/... //jim-ws/main/... //depot/rel1/... //jim-ws/rel1/... //depot/rel1/... //jim-ws/rel1/... Is the target branch in this list?
25
Perforce Overview25 새 브랜치 작성 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...
26
Perforce Overview26 depotworkspace integrate //depot/rel1/... //depot/main/... main/foo.c#10submit rel1/foo.c#3rel1/foo.c#4 main/foo.c#9 sync //depot/main/... foo.c editor foo.c foo.c “yours” “base” “theirs” “merged” “result” resolve
27
Perforce Overview27 브랜치 들 간의 변경 전달 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...
28
Perforce Overview28 브랜치 와 병합 Integrating by Branch View A way to store and reuse source/target branch relationships To use branch views: create branch view speccreate branch view spec use branch view name with integrate commanduse branch view name with integrate command
29
Perforce Overview29 Branch: r1 Description: Release 1 branch for Server & API Release 1 branch for Server & APIView: //depot/main/svr/... //depot/rel1/svr/... //depot/main/svr/... //depot/rel1/svr/... //depot/main/api/... //depot/rel1/api/... //depot/main/api/... //depot/rel1/api/... 브랜치 뷰 명세 작성 p4 branch r1 branch view name target paths source paths
30
Perforce Overview30 브랜치 명세 이용 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/…
31
Perforce Overview31 Multi-platform Support Runs on zillions of platforms! If we don't run on yours, let us know and we'll port it!
32
Perforce Overview32 Summary Fast Scalable Intuitive Highly portable Low administration Excellent technical support
33
Perforce Overview33 Code Manager (1) Based on SCCS Good 3-way GUI merge utility Remote working directly supported Work on real content, not virtual copies
34
Perforce Overview34 Code Manager (2) Bringover and putback operations lock master workspace Operations are performed on individual files (including labels!) Getting history is difficult Can't delete files Only runs on Sun Operating Systems SLOW!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.