Perforce Perforce Overview 1 The Perforce ClientServer Model

  • Slides: 32
Download presentation
형상관리 도구 Perforce 개요 Perforce Overview 1

형상관리 도구 Perforce 개요 Perforce Overview 1

구 조 The Perforce Client-Server Model Perforce server Perforc e client Perforce Overview 3

구 조 The Perforce Client-Server Model Perforce server Perforc e client Perforce Overview 3 Perforc e client

구 조 The Perforce Server Depot Perforce server Depot Database Perforce Overview 4

구 조 The Perforce Server Depot Perforce server Depot Database Perforce Overview 4

구 조 Perforce Client Programs p 4 win p 4 “Joe 1” Workspace Perforce

구 조 Perforce Client Programs p 4 win p 4 “Joe 1” Workspace Perforce Overview “Joe 2” Workspace 5

극소 변경 작업들 Changelists Changelist 3567 src/zoo/zebra. c#23 edit src/zoo/chimp. c#1 add src/zoo/walrus. c#14

극소 변경 작업들 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 6

Client 작업공간 생성 Editor form Command p 4 client Client: laura-ws 1 Date: 1998/06/15

Client 작업공간 생성 Editor form Command p 4 client Client: laura-ws 1 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-ws 1/main/jam/. . . Perforce Overview 7

작업공간 등록 p 4 sync //depot/main/jam/regexp. c#4 - added as c: demomainjamregexp. c //depot/main/jam/regexp.

작업공간 등록 p 4 sync //depot/main/jam/regexp. c#4 - added as c: demomainjamregexp. c //depot/main/jam/regexp. h#2 - added as c: demomainjamregexp. h //depot/main/jam/RELNOTES#77 - added as c: demomainjamRELNOTES //depot/main/jam/rules. c#5 - added as c: demomainjamrules. c and so on. . . Perforce Overview 8

작업 파일들 수정 cd c: demomainjam p 4 edit rules. c regexp. h //depot/main/jam/rules.

작업 파일들 수정 cd c: demomainjam p 4 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 9

신규 파일들 추가 vi alias. c p 4 add alias. c //depot/main/jam/alias. c#1 -

신규 파일들 추가 vi alias. c p 4 add alias. c //depot/main/jam/alias. c#1 - opened for add p 4 add -t binary logo. bmp //depot/main/graphics/logo. bmp#1 - opened for add Perforce Overview 10

파일들 삭제 ls lists. c lists. h make. c make. h make 1. c

파일들 삭제 ls lists. c lists. h make. c make. h make 1. c mkjambase. h newstr. c newstr. h option. c parse. h rules. h scan. c scan. h search. c variable. h yyacc p 4 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 11

작업 파일들 복구 p 4 revert regexp. h alias. c parse. h //depot/main/jam/regexp. h#2

작업 파일들 복구 p 4 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 12

작업공간 파일들 작업 이력 조회 p 4 opened //depot/main/jam/hash. c#2 - edit default chang

작업공간 파일들 작업 이력 조회 p 4 opened //depot/main/jam/hash. c#2 - edit default chang (text) //depot/main/jam/check. c#1 - add default chang (text) //depot/main/jam/execnt. c#9 - delete default change (text) Perforce Overview 13

변경사항 조회 p 4 diff hash. c ==== //depot/main/jam/hash. c#2 c: demomainhash. c ====

변경사항 조회 p 4 diff hash. c ==== //depot/main/jam/hash. c#2 c: demomainhash. c ==== 76 c 76 < TARGET target, t = &target; --> TARGET target, *t = &target; Perforce Overview 14

매일작업 마감 변경리스트 제출 Depot rules. c#2 check. c#1 execmac. c#2 Workspace 5489 5490

매일작업 마감 변경리스트 제출 Depot rules. c#2 check. c#1 execmac. c#2 Workspace 5489 5490 5491 5492 5493 5494 5495 5496 Perforce Overview 15

변경리스트 제출 p 4 submit Change 5085 created with 3 open file(s). Change: new

변경리스트 제출 p 4 submit Change 5085 created with 3 open file(s). Change: new Submitting change 5085. Description: add //depot/main/jam/check. c#1 <enter description here> Added “check” function. delete //depot/main/jam/ execmac. c#2 Files: edit //depot/main/jam/rules. c#6 //depot/main/jam/check. c # add Change 5085 submitted. //depot/main/jam/execmac. c # delete //depot/main/jam/rules. c # edit Perforce Overview 16

파일 병합 About “resolve” F The resolve command F When to use resolve: •

파일 병합 About “resolve” F The resolve command F When to use resolve: • After a failed submit • After re-syncing opened files • When integrating between branches Perforce Overview 17

joe-ws depot ann-ws foo. c#3 foo. c sync edit submit sync edit foo. c#4

joe-ws depot ann-ws foo. c#3 foo. c sync edit submit sync edit foo. c#4 submit 제출 실패 foo. c resolve submit foo. c#5 Perforce Overview 18

분석 명령어 p 4 resolve c: demomainjamrules. c - merging //depot/main/jam/rules. c#7 Diff chunks:

분석 명령어 p 4 resolve c: demomainjamrules. 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 19

파일 병합 Conflict markers in the merged file theirs # # include yours "jam.

파일 병합 Conflict markers in the merged file theirs # # include yours "jam. h" "option. h" "patchlev. h" "make. h" merged # include "jam. h" # include "option. h" >>>> ORIGINAL foo. c#3 ==== THEIRS foo. c#4 # include "patchlev. h" ==== YOURS # include "patchlevel. h" <<<< # include "make. h" Perforce Overview 20 # # include "jam. h" "option. h" "patchlevel. h" "make. h" result (after editing) # # # # include "jam. h" include "option. h" ifdef FATFS include "patchlev. h" else include "patchlevel. h" endif include "make. h"

Inter-File Branching F Branching a codeline F Propagating changes from one codeline branch into

Inter-File Branching F Branching a codeline F Propagating changes from one codeline branch into another Perforce Overview 21

브랜치 와 통합 Branching a Codeline //depot/rel 1/. . . //depot/main/. . . l

브랜치 와 통합 Branching a Codeline //depot/rel 1/. . . //depot/main/. . . l 1 re main Perforce Overview 22

브랜치 와 통합 브랜치를 통한 변경 전개 main re 1 el r Perforce Overview

브랜치 와 통합 브랜치를 통한 변경 전개 main re 1 el r Perforce Overview 23 l 2

대상 브랜치 를 위한 Client 점검 p 4 client Client: jim-ws Description: Jim’s Release

대상 브랜치 를 위한 Client 점검 p 4 client Client: jim-ws Description: Jim’s Release Root: c: demo View: //depot/main/. . . //depot/rel 1/. . . Is the target branch in this list? Perforce Overview 24 1. 0 workspace. //jim-ws/main/. . . //jim-ws/rel 1/. . .

새 브랜치 작성 p 4 integ //depot/main/. . . //depot/rel 1/regexp. h#1 - branch/sync

새 브랜치 작성 p 4 integ //depot/main/. . . //depot/rel 1/regexp. h#1 - branch/sync from //depot/main/regexp. h#3 //depot/rel 1/rules. c#1 - branch/sync from //depot/main/rules. c#7 //depot/rel 1/rules. h#1 - branch/sync from //depot/main/rules. h#4 …and so on p 4 submit. . . Perforce Overview 25

workspace depot sync //depot/main/. . . integrate //depot/rel 1/. . . //depot/main/. . .

workspace depot sync //depot/main/. . . integrate //depot/rel 1/. . . //depot/main/. . . resolve submit foo. c main/foo. c#9 editor “yours” “merged” foo. c “result” 26 “base” rel 1/foo. c#4 foo. c Perforce Overview rel 1/foo. c#3 main/foo. c#10 “theirs”

브랜치 들 간의 변경 전달 p 4 sync //depot/main/. . . - files up-to-date.

브랜치 들 간의 변경 전달 p 4 sync //depot/main/. . . - files up-to-date. p 4 integ //depot/rel 1/. . . //depot/main/make. c#4 - integrate from //depot/rel 1/make. c#2, #3 //depot/main/make 1. c#7 - integrate from //depot/rel 1/make 1. c#2 p 4 resolve. . . p 4 submit. . . Perforce Overview 27

브랜치 와 병합 Integrating by Branch View F A way to store and reuse

브랜치 와 병합 Integrating by Branch View F A way to store and reuse source/target branch relationships F To use branch views: • create branch view spec • use branch view name with integrate command Perforce Overview 28

브랜치 뷰 명세 작성 branch view name p 4 branch r 1 Branch: r

브랜치 뷰 명세 작성 branch view name p 4 branch r 1 Branch: r 1 Description: Release 1 branch for Server & API View: //depot/main/svr/. . . //depot/rel 1/svr/. . . //depot/main/api/. . . //depot/rel 1/api/. . . target paths source paths Perforce Overview 29

브랜치 명세 이용 p 4 integ -b r 1 …instead of: p 4 integ

브랜치 명세 이용 p 4 integ -b r 1 …instead of: p 4 integ //depot/main/svr/… //depot/rel 1/svr/… p 4 integ //depot/main/api/… //depot/rel 1/api/… And: p 4 integ -r -b r 1 …instead of: p 4 integ //depot/rel 1/svr/… //depot/main/svr/… p 4 integ //depot/rel 1/api/… //depot/main/api/… Perforce Overview 30

Multi-platform Support F Runs on zillions of platforms! F If we don't run on

Multi-platform Support F Runs on zillions of platforms! F If we don't run on yours, let us know and we'll port it! Perforce Overview 31

Summary F F F Fast Scalable Intuitive Highly portable Low administration Excellent technical support

Summary F F F Fast Scalable Intuitive Highly portable Low administration Excellent technical support Perforce Overview 32