사용자 도구

사이트 도구


kb:perforcesetup

Perforce / Setup

2006년 1월 버전 기준.

애플리케이션 설치

프로그램 설치 자체는 셋업 프로그램에서 다 해주기 때문에 딱히 건드릴 건 없다.

다만 기본적으로 깔리는 디렉토리에다 깔면 나중에 P4ROOT 설정하는 부분에 귀찮아지니까, 저장소를 둘 디렉토리에다 프로그램을 설치하자. 예를 들어 D:\Perforce 디렉토리에다 저장소를 두기 원한다면 D:\Perforce에다 프로그램을 설치하라는 말이다.

그리고 에디터 정도는 자주 사용하는 에디터로 변경해 주자. 각종 설정 파일 편집할 때 및 소스 볼 때에도 사용하게 되니 노트패드 말고 다른 걸 이용하는 것이 좋다. 뭐 노트패드로 해둬도, 설치 마친 후 레지스트리 변경해주면 되니 별 상관은 없다.

프로그램 설치가 끝났으면 라이센스 파일을 프로그램을 설치한 디렉토리에다 집어넣어준다. 라이센스를 적용하기 위해서는 퍼포스 서비스를 재시작해야 한다. 윈도우즈의 경우에는 sc 커맨드를 이용하면 된다.

sc stop Perforce
sc start Perforce

이후부터의 작업은 퍼포스 데몬이 깔린 컴퓨터 말고 다른 컴퓨터(퍼포스 클라이언트가 깔린…)에서 해도 상관없다.

사용자 추가 및 그룹 생성

사용자 추가/패스워드 설정

p4 user -f name

입력하면 아래와 같은 모양의 에디터 창이 뜰 것이다.

# A Perforce User Specification.
#
#  User:        The user's user name.
#  Email:       The user's email address; for email review.
#  Update:      The date this specification was last modified.
#  Access:      The date this user was last active.  Read only.
#  FullName:    The user's real name.
#  JobView:     Selects jobs for inclusion during changelist creation.
#  Password:    If set, user must have matching $P4PASSWD on client.
#  Reviews:     Listing of depot files to be reviewed by user.

User:    test

Email:    test@Anima

FullName:    test

이메일과 풀네임을 설정해준다. 위에서 보듯이 패스워드도 바로 설정할 수 있는데, 귀찮으니까 각각의 유저가 설정하라고 하자. 자신의 패스워드를 수정하기 위해서는 퍼포스 클라이언트를 깔아준 다음에 아래와 같이 하면 된다.

p4 passwd

다른 사람의 패스워드를 수정하기 위해서는 아래와 같이 한다. 아마 관리자 권한이 있어야 할 것이다.

p4 passwd username

그룹 설정

그룹을 만드는 이유는 나중에 보면 알겠지만, 사용자 별로 권한 세팅을 하는 번거로움을 없애기 위해서이다. 일단 새로운 그룹을 생성하기 위해서는 다음과 같이 한다.

p4 group groupname

입력하면 아래와 같은 모양의 에디터 창이 뜰 것이다. (그룹 이름을 programmers라고 주었다.)

# A Perforce Group Specification.
#
#  Group:       The name of the group.
#  MaxResults:  A limit on the results of operations for users in
#               this group, or 'unlimited'.  See 'p4 help maxresults'.
#  MaxScanRows: A limit on the data scanned during operations for users
#               in this group, or 'unlimited'.  See 'p4 help maxresults'.
#  Timeout:     A time (in seconds) which determines how long a 'p4 login'
#               session ticket remains valid (default is 12 hours).
#  Subgroups:   Other groups automatically included in this group.
#  Users:       The users in the group.  One per line.

Group:    programmers

MaxResults:    unlimited

MaxScanRows:    unlimited

Timeout:    43200

Subgroups:

Users:
    excel96
    test

Users 항목에다 필요한 사용자들의 ID를 집어넣는다.

보안 설정

사용자 추가가 끝났다면 아래의 명령어를 입력한다.

p4 protect
# Perforce Protections Specification.
#
#  Each line contains a protection mode, a group/user indicator, the
#  group/user name, client host id and a depot file path pattern.
#  A user gets the highest privilege granted on any line.
#
#  Mode:        The permission being granted.  Each permission includes
#               all the permissions above it, except for 'review'.
#
#               list   - users can see names but not contents of files;
#                        users can see all non-file related metadata
#                        (clients, users, changelists, jobs, etc.)
#
#               read   - users can sync, diff, and print files
#
#               open   - users can add, edit, delete, and integrate files
#
#               write  - users can submit open files
#
#               super  - allows access to the 'p4 protect' command
#
#               review - allows access to the 'p4 review' command; implies
#                        read access
#
#  Group/User indicator: either 'group' or 'user'.
#
#  Name:        A Perforce group or user name; may be wildcarded.
#
#  Host:        The IP address of a client host; may be wildcarded.
#
#  Path:        The part of the depot being granted access.

Protections:
#    write user * * //...
    write group programmers * //...
    super user excel96 * //...

맨 아래에 보면

write user * * //...

부분을 주석 처리하고,

write group programmers * //...

라고 추가해놓은 부분이 있는데, 이게 무슨 뜻이냐 하면 원래 것은 모든 사용자가 모든 파일에 대해 읽고 쓰기 권한을 가진다이고, 아래에 있는 것은 programmers 그룹에 있는 사용자는 모든 파일에 대해 읽고 쓰기 권한을 가진다이다.

5개의 필드가 가지는 의미는 맨 앞부터 차례로 권한, 사용자/그룹, 사용자/그룹 이름, 접속 주소, 저장소 경로를 의미한다. '*' 문자는 모든 사용자/그룹을 의미하고, '…' 문자열은 모든 파일을 의미한다. 퍼포스에서 '' 문자열은 저장소 루트를 의미하므로, '…' 문자열은 저장소에 존재하는 모든 파일을 나타낸다.

디팟 생성

기본적으로 설치시에 depot 이라는 이름의 디팟이 생성되는데, 여러 가지로 혼란을 불러일으키므로 삭제해 버리자.

p4 depot -d depot

그 다음 실제로 사용할 디팟을 생성한다.

p4 depot AnimaFiles

파일 타입 매핑 설정

퍼포스는 파일 앞쪽의 8192바이트를 읽어서, 이들의 MSB가 모두 0이면 텍스트 파일로 인식을 한다. 문제는 바이너리 파일도 우연히 텍스트 파일로 인식될 수 있다는 점. 그 반대도 당연히 가능할 테고. 한글 아스키 파일은 MSB가 1이지 않나? 뭐 어쨌든 이런 오류를 피하기 위해 확장자에 따라 어떤 타입으로 인식할 것인지를 미리 지정해두는 것이 좋다.

p4 typemap
# Perforce File Type Mapping Specifications.
#
#  TypeMap:    a list of filetype mappings; one per line.
#        Each line has two elements:
#
#          Filetype: The filetype to use on 'p4 add'.
#
#          Path:     File pattern which will use this filetype.
#
# See 'p4 help typemap' for more information.

TypeMap:
    text //....h
    text //....c
    text //....hpp
    text //....cpp
    text //....hxx
    text //....cxx
    text //....hh
    text //....cc
    text //....asp
    binary+F //....avi
    binary //....bmp
    binary //....btr
    text //....cnf
    text //....css
    binary //....doc
    binary //....dot
    binary+w //....exp
    binary+F //....gif
    text //....htm
    text //....html
    binary //....ico
    text //....inc
    text+w //....ini
    binary //....jpg
    text //....js
    binary+w //....lib
    text+w //....log
    binary+F //....mpg
    binary //....pdf
    text+w //....pdm
    binary //....ppt
    binary //....xls
    binary+F //....zip

워크스페이스 설정

음. 이건 커맨드 라인에서 하기보다는 VisualStudio 안이나, P4V GUI를 주로 이용하게 되는데…

워크스페이스 생성

일단 뭔가 작업을 하기 위해서는 워크스페이스가 있어야 한다. 워크스페이스는 [Subversion]의 작업본(working copy) 같은 개념이다.

p4 workspace workspace_name

워크스페이스 이름을 Anima로 주었다.

# A Perforce Client Specification.
#
#  Client:      The client name.
#  Update:      The date this specification was last modified.
#  Access:      The date this client was last used in any way.
#  Owner:       The user who created this client.
#  Host:        If set, restricts access to the named host.
#  Description: A short description of the client (optional).
#  Root:        The base directory of the client workspace.
#  AltRoots:    Up to two alternate client workspace roots.
#  Options:     Client options:
#                      [no]allwrite [no]clobber [no]compress
#                      [un]locked [no]modtime [no]rmdir
#  LineEnd:     Text file line endings on client: local/unix/mac/win/share.
#  View:        Lines to map depot files into the client workspace.
#
# Use 'p4 help client' to see more about client views and options.

Client:    Anima

Update:    2006/08/25 10:09:38

Access:    2006/08/25 10:31:57

Owner:    excel96

Host:    cjintern-ff066f

Description:
    Created by excel96.

Root:    d:\Project\Anima

Options:    noallwrite noclobber nocompress unlocked nomodtime normdir

LineEnd:    local

View:
    //AnimaFiles/... //Anima/...

여기서 세팅해줘야 하는 것은 Root 항목와 View 항목이다. Root는 워크스페이스가 들어갈 디렉토리를 말하고, View는 디팟에 있는 파일들을 워크스페이스, 즉 로컬 파일 시스템에다 어떻게 매핑시킬 것인가를 의미한다. Options 항목도 뭔가 중요한 것 같기는 한데, 일단은 기본 세팅으로 고고.

최초 임포트

일단 최초의 프로젝트를 임포트시켜줘야 한다. 작업 중이던 프로젝트 디렉토리에서 필요없는 파일들 싹 지우고, 위에서 설정한 워크스페이스 안으로 복사한다. 그 다음 p4v를 실행한다.

로그인할 때, 방금 생성한 워크스페이스의 이름을 적어준다.

워크스페이스 탭 최상위 디렉토리에서 Mark For Add 명령어를 실행해준다.

앞쪽에 + 표시가 된 걸을 볼 수 있다. 이걸 커맨드 창에서 하려면 꽤 귀찮다.

왠지는 모르겠지만, p4v 안에서는 모든 하위 디렉토리에 있는 파일들을 서브밋할 수 있는 메뉴가 없다. 커맨드 창을 띄워서 서브밋한다.

p4v submit
# A Perforce Change Specification.
#
#   ...생략...

Change:    new

Client:    Anima

User:    excel96

Status:    new

Description:
    여기다 뭔가 설명을 적어준다.

Files:
    //AnimaFiles/Documents/bin/doxygen.exe    # add
    ...생략...

다른 컴퓨터에서 이 파일들을 받아오기 위해서는 워크스페이스를 동일한 과정으로 생성한 다음 아래의 명령어를 입력하면 된다.

p4 sync -f

P4V 안에서는 왠지 파일을 강제로 가져오기가 되지 않는 것 같다. 아직 많이 사용해보질 않아서 모르는 걸지도.

Visual Studio 바인딩 변경

워크스페이스를 설정한 다음, Visual Studio 안으로 들어가보면, 바인딩 설정이 되어있지 않은 걸 알 수 있다.

모든 프로젝트를 선택한 다음, 바인드해준다. p4v 로그인 창이 뜰 것인데, 패스워드 입력하고, 워크스페이스 제대로 되있는지 확인만 하면 된다.


kb/perforcesetup.txt · 마지막으로 수정됨: 2014/11/08 13:03 (바깥 편집)