사용자 도구

사이트 도구


kb:perforcesetup

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

kb:perforcesetup [2014/11/08 13:03] (현재)
줄 1: 줄 1:
 +====== Perforce / Setup ======
 +2006년 1월 버전 기준.
 +
 +
 +====== 애플리케이션 설치 ======
 +프로그램 설치 자체는 셋업 프로그램에서 다 해주기 때문에 딱히 건드릴 건 없다. ​
 +
 +다만 기본적으로 깔리는 디렉토리에다 깔면 나중에 P4ROOT 설정하는 부분에 귀찮아지니까,​ 저장소를 둘 디렉토리에다 프로그램을 설치하자. 예를 들어 D:\Perforce 디렉토리에다 저장소를 두기 원한다면 D:​\Perforce에다 프로그램을 설치하라는 말이다.
 + 
 +그리고 에디터 정도는 자주 사용하는 에디터로 변경해 주자. 각종 설정 파일 편집할 때 및 소스 볼 때에도 사용하게 되니 노트패드 말고 다른 걸 이용하는 것이 좋다. 뭐 노트패드로 해둬도, 설치 마친 후 레지스트리 변경해주면 되니 별 상관은 없다.
 +
 +프로그램 설치가 끝났으면 라이센스 파일을 프로그램을 설치한 디렉토리에다 집어넣어준다. 라이센스를 적용하기 위해서는 퍼포스 서비스를 재시작해야 한다. 윈도우즈의 경우에는 sc 커맨드를 이용하면 된다.
 +
 +<code winbatch>​
 +sc stop Perforce
 +sc start Perforce
 +</​code>​
 +
 +이후부터의 작업은 퍼포스 데몬이 깔린 컴퓨터 말고 다른 컴퓨터(퍼포스 클라이언트가 깔린...)에서 해도 상관없다.
 +
 +
 +====== 사용자 추가 및 그룹 생성 ======
 +===== 사용자 추가/​패스워드 설정 =====
 +<code winbatch>​
 +p4 user -f name
 +</​code>​
 +
 +입력하면 아래와 같은 모양의 에디터 창이 뜰 것이다.
 +<​code>​
 +# 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
 +</​code>​
 +
 +이메일과 풀네임을 설정해준다. 위에서 보듯이 패스워드도 바로 설정할 수 있는데, 귀찮으니까 각각의 유저가 설정하라고 하자. 자신의 패스워드를 수정하기 위해서는 퍼포스 클라이언트를 깔아준 다음에 아래와 같이 하면 된다.
 +
 +<​code>​
 +p4 passwd
 +</​code>​
 +
 +다른 사람의 패스워드를 수정하기 위해서는 아래와 같이 한다. 아마 관리자 권한이 있어야 할 것이다.
 +
 +<​code>​
 +p4 passwd username
 +</​code>​
 +
 +===== 그룹 설정 =====
 +그룹을 만드는 이유는 나중에 보면 알겠지만,​ 사용자 별로 권한 세팅을 하는 번거로움을 없애기 위해서이다. 일단 새로운 그룹을 생성하기 위해서는 다음과 같이 한다.
 +
 +<code winbatch>​
 +p4 group groupname
 +</​code>​
 +
 +
 +입력하면 아래와 같은 모양의 에디터 창이 뜰 것이다. (그룹 이름을 programmers라고 주었다.)
 +
 +<​code>​
 +# 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
 +</​code>​
 +
 +Users 항목에다 필요한 사용자들의 ID를 집어넣는다.
 +
 +
 +====== 보안 설정 ======
 +사용자 추가가 끝났다면 아래의 명령어를 입력한다.
 +
 +<code winbatch>​
 +p4 protect
 +</​code>​
 +
 +<​code>​
 +# 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 * //...
 +</​code>​
 +
 +맨 아래에 보면 ​
 +<​code>​
 +write user * * //...
 +</​code> ​
 +
 +부분을 주석 처리하고, ​
 +
 +<​code>​
 +write group programmers * //...
 +</​code> ​
 +
 +라고 추가해놓은 부분이 있는데, 이게 무슨 뜻이냐 하면 원래 것은 **모든 사용자가 모든 파일에 대해 읽고 쓰기 권한을 가진다**이고,​ 아래에 있는 것은 **programmers 그룹에 있는 사용자는 모든 파일에 대해 읽고 쓰기 권한을 가진다**이다. ​
 +
 +5개의 필드가 가지는 의미는 맨 앞부터 차례로 권한, 사용자/​그룹,​ 사용자/​그룹 이름, 접속 주소, 저장소 경로를 의미한다. '​*'​ 문자는 모든 사용자/​그룹을 의미하고,​ '​...'​ 문자열은 모든 파일을 의미한다. 퍼포스에서 '//'​ 문자열은 저장소 루트를 의미하므로,​ '//​...'​ 문자열은 저장소에 존재하는 모든 파일을 나타낸다.
 +
 +
 +====== 디팟 생성 ======
 +기본적으로 설치시에 depot 이라는 이름의 디팟이 생성되는데,​ 여러 가지로 혼란을 불러일으키므로 삭제해 버리자.
 +
 +<code winbatch>​
 +p4 depot -d depot
 +</​code>​
 + 그 다음 실제로 사용할 디팟을 생성한다.
 + <​code>​
 +p4 depot AnimaFiles
 +</​code>​
 +
 +
 +====== 파일 타입 매핑 설정 ======
 +퍼포스는 파일 앞쪽의 8192바이트를 읽어서, 이들의 MSB가 모두 0이면 텍스트 파일로 인식을 한다. 문제는 바이너리 파일도 우연히 텍스트 파일로 인식될 수 있다는 점. 그 반대도 당연히 가능할 테고. 한글 아스키 파일은 MSB가 1이지 않나? 뭐 어쨌든 이런 오류를 피하기 위해 확장자에 따라 어떤 타입으로 인식할 것인지를 미리 지정해두는 것이 좋다.
 +
 +<code winnbatch>​
 +p4 typemap
 +</​code>​
 +
 +<​code>​
 +# 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
 +</​code>​
 +
 +
 +====== 워크스페이스 설정 ======
 +음. 이건 커맨드 라인에서 하기보다는 [[VisualStudio]] 안이나, P4V GUI를 주로 이용하게 되는데...
 +
 +===== 워크스페이스 생성 =====
 +일단 뭔가 작업을 하기 위해서는 워크스페이스가 있어야 한다. 워크스페이스는 [Subversion]의 작업본(working copy) 같은 개념이다.
 +
 +<code winbatch>​
 +p4 workspace workspace_name
 +</​code>​
 +
 +워크스페이스 이름을 Anima로 주었다.
 +<​code>​
 +# 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/...
 +</​code>​
 +
 +여기서 세팅해줘야 하는 것은 Root 항목와 View 항목이다. Root는 워크스페이스가 들어갈 디렉토리를 말하고, View는 디팟에 있는 파일들을 워크스페이스,​ 즉 로컬 파일 시스템에다 어떻게 매핑시킬 것인가를 의미한다. Options 항목도 뭔가 중요한 것 같기는 한데, 일단은 기본 세팅으로 고고.
 +
 +===== 최초 임포트 =====
 +일단 최초의 프로젝트를 임포트시켜줘야 한다. 작업 중이던 프로젝트 디렉토리에서 필요없는 파일들 싹 지우고, 위에서 설정한 워크스페이스 안으로 복사한다. 그 다음 p4v를 실행한다.
 +
 +{{perforcesetup_login.png}}
 +
 +로그인할 때, 방금 생성한 워크스페이스의 이름을 적어준다.
 +
 +워크스페이스 탭 최상위 디렉토리에서 Mark For Add 명령어를 실행해준다.
 +
 +{{perforcesetup_before_mark_for_add.png}}
 +
 +앞쪽에 + 표시가 된 걸을 볼 수 있다. 이걸 커맨드 창에서 하려면 꽤 귀찮다.
 +
 +{{perforcesetup_after_mark_for_add.png}}
 +
 +왠지는 모르겠지만,​ p4v 안에서는 모든 하위 디렉토리에 있는 파일들을 서브밋할 수 있는 메뉴가 없다. 커맨드 창을 띄워서 서브밋한다.
 +
 +<code winbatch>​
 +p4v submit
 +</​code>​
 +
 +<​code>​
 +# A Perforce Change Specification.
 +#
 +#   ​...생략...
 +
 +Change: ​   new
 +
 +Client: ​   Anima
 +
 +User:    excel96
 +
 +Status: ​   new
 +
 +Description:​
 +    여기다 뭔가 설명을 적어준다.
 +
 +Files:
 +    //​AnimaFiles/​Documents/​bin/​doxygen.exe ​   # add
 +    ...생략...
 +</​code>​
 +
 +다른 컴퓨터에서 이 파일들을 받아오기 위해서는 워크스페이스를 동일한 과정으로 생성한 다음 아래의 명령어를 입력하면 된다.
 +
 +<code winbatch>​
 +p4 sync -f
 +</​code>​
 +
 +P4V 안에서는 왠지 파일을 강제로 가져오기가 되지 않는 것 같다. 아직 많이 사용해보질 않아서 모르는 걸지도.
 +
 +===== Visual Studio 바인딩 변경 =====
 +워크스페이스를 설정한 다음, Visual Studio 안으로 들어가보면,​ 바인딩 설정이 되어있지 않은 걸 알 수 있다.
 +
 +{{perforcesetup_before_bind.png}}
 +
 +모든 프로젝트를 선택한 다음, 바인드해준다. p4v 로그인 창이 뜰 것인데, 패스워드 입력하고,​ 워크스페이스 제대로 되있는지 확인만 하면 된다.
 +
 +{{perforcesetup_after_bind.png}}
 +
 +----
 +  * see also [[Perforce]],​ [[ConfigurationManagement]]
  
kb/perforcesetup.txt · 마지막으로 수정됨: 2014/11/08 13:03 (바깥 편집)