Perforce(P4V) 체크아웃, 체크아웃 해제

체크아웃(Check Out), 체크아웃 해제(Check out file Revert)

Perforce Client(P4V) basics

체크아웃 방법

체크아웃 후 파일 오픈!
체크아웃 후 파일이 열린 모습
  • 체크아웃하려는 파일을 워크스페이스 파일 트리에서 파일을 선택, 오른쪽 버튼으로 체크아웃합니다.
  • Check Out, Check Out and Open 메뉴를 통해서 체크아웃할 수 있습니다.

체크아웃 참고

작업할 이미지 파일이 Lock된 상태"
이미 누군가 파일을 체크아웃했다고 합니다

  • 이미지, 에셋 등 Exclusive file을 체크아웃할 때 다른 작업자가 체크아웃하고 있을 경우 체크아웃할 수 없습니다.
  • 작업을 하고자할 경우 현재 진행중인 작업이 마무리되고 체크아웃하여 작업할 수 있습니다.

체크아웃 해제

파일 체크아웃 해제: Revert

  • 체크아웃한 파일들을 더 이상 수정하지 않는다면 Revert를 이용하여 체크아웃을 해제할 수 있습니다.
  • Changelist에서 마우스 오른쪽 버튼 -> Revert Files 또는 Revert Unchanged Files로 리버트할 수 있습니다.
    • Revert Files : Changelist에 있는 모든 파일의 수정을 취소합니다.(리버트합니다)
    • Revert Unchanged Files : Changelist에 있는 수정되지 않은 파일을 pending list를 제외합니다. (이것도 리버트라고 볼 수 있겠네요)
  • 파일 각각 선택하여 리버트할 수도 있습니다.

Revert시 변경한 내역이 있는 파일이 있는 경우

  • 다른 옵션 설정 없이 그냥 리버트해도 상관 없습니다.
  • 두번째 옵션(Get the latest revision and then check out all files that were reverted)의 경우 리버트 후 파일들을 최신 데이터로 업데이트한 뒤 체크아웃해줍니다.

다른 Perforce 가이드 문서들

Perforce Stream, task stream / 태스크 스트림

Perforce stream: Task stream

예전 포스트에서 스트림을 살펴보았는데요. Perforce(P4V) Stream(스트림)
각 스트림 타입별 내용을 한번 정리해보고자 합니다. 😃
이번 포스트에서는 Task stream, 태스크 스트림을 공부해보겠습니다.

가이드 문서: Working with task streams

참고: 스트림 유형(Stream types)

  • Mainline: 최상위 스트림으로 메인 브랜치로 볼 수 있습니다.
  • Release: 안정적인 소스 상태로 관리하기 위한 스트림으로 주로 안정적인 릴리스를 준비하기 위해 사용하는 스트림입니다.
  • Development: 개발이 이뤄지는 피쳐 스트림입니다.
  • Task: 작은 단위의 작업을 할 때 사용할 수 있는 특수한 스트림입니다. 자세한 내용은 링크를 참고하세요.
  • Virtual: 특정 인원에게 제한된 뷰를 제공하기 위한 스트림입니다. 자세한 내용은 링크를 참고하세요.

Task stream overview(요약)

먼저 가이드 문서에 있는 내용들을 요약해보겠습니다.

  • 태스크 스트림은 버그 수정이나 작은 기능 개발과 같이 제한된 작업에 적합합니다.
  • 태스크 스트림은 브랜치의 총 파일 수에 비해 적은 수의 파일에 영향을 주는 가벼운 브랜치입니다.
  • 태스크 스트림은 대개 일시적인 경우가 많으며 변경 사항이 통합되면 삭제되거나 언로드됩니다.
  • 태스크 스트림은 리포지토리 메타데이터의 양을 최소한으로 유지하여 Helix Core Server 성능에 도움이 될 수 있습니다.
  • ⭐각 태스크 스트림에는 고유한 이름이 필요하며, 이 이름은 태스크 스트림이 삭제된 후에도 재사용할 수 없습니다.
    • 따라서 사이트에 사용자-날짜-작업 번호와 같은 명명 규칙이 있는지 관리자에게 문의하세요.
    • 여기서 작업 번호는 이슈 추적 애플리케이션에서 식별자 또는 ‘작업(job)’을 나타냅니다.

다른 스트림들과 다른 태스크 스트림의 예외 사항

  • 태스크 스트림에는 상위(부모) 스트림이 필요하지 않습니다.
    • 따라서 스트림 depot에서 작업하지 않는 사용자도 태스크 스트림을 만들 수 있습니다.
    • 태스크 스트림은 스트림 저장소에 있어야 하지만, 해당 저장소는 태스크 스트림의 보류 장소일 뿐입니다.
    • 사용할 스트림 보관소에 대한 정보는 관리자나 프로젝트 리드에게 문의하세요.
    • 자세한 내용은 상위 스트림 없이 태스크 스트림 만들기를 참조하세요.
  • 상위 스트림은 다른 depot에 있을 수 있습니다.
    • 태스크 스트림은 삭제되거나 언로드될 때까지 디포에 빠르게 누적될 수 있습니다.
    • 프로젝트 보관함을 태스크 스트림으로 어수선하게 만들지 않으려면 관리자나 프로젝트 리더가 특정 스트림 보관함을 태스크 스트림의 전용 보관 장소로 설정할 수 있습니다.
    • 이 경우, 태스크 스트림 저장소에 스트림을 프로젝트 저장소에 있는 상위 스트림의 하위 스트림으로 만들면 됩니다.
    • 태스크 스트림이 다른 디포에 있더라도 부모 디포의 스트림 그래프 보기에 스트림이 표시되는 것을 볼 수 있습니다.
    • 자세한 내용은 다른 저장소에 태스크 스트림 만들기를 참조하세요.
  • 태스크 스트림은 자식 스트림을 가질 수 없습니다.
    • 태스크 스트림은 상위 스트림을 다시 지정할 수 없습니다.
    • 하지만 태스크 스트림을 일반 스트림으로 변환하면 해당 일반 스트림에 상위 스트림을 다시 지정할 수 있습니다.

💡 태스크 스트림이 다른 스트림과 다른점 💡
P4V나 가이드 문서를 확인해보니 태스크 스트림만 unload 할 수 있네요.
mainline, development, release 스트림은 삭제만 가능하고 Virtual 스트림은 다른 유형의 스트림이니 제외하고 나면 태스크 스트림만 가능합니다.
스트림이 많을수록 서버 성능에 영향이 있을 수 있으니 사용하지 않는 스트림의 정보를 unload하고 데이터를 로딩하지 않는 형태로 서버 성능을 관리할 수 있는 형태인 것 같네요.
추가로 Unload할 수 있는 것은 워크스페이스인데 퍼포스 서버 쪽에서 관리하는 데이터를 unload해서 서버 성능 관리를 좀 해야하나 봅니다.
(저희도 workspace, stream 전체 현황 검토해서 정리가 필요하겠네요 ㅎㅎ 😂)

정리

정리해보면, 태스크 스트림은 작은 작업, 버그 수정 등을 위한 피쳐 브랜치로 사용할 수 있는 스트림이라고 할 수 있네요.
다른 스트림들에 비해 스위칭 속도가 더 빠르거나 그런 것은 아닌 것 같지만 어떻게 스트림을 생성했냐에 따라 다를 수 있을 것 같습니다.
(스트림 생성시 부모 스트림의 데이터를 그대로 사용하는 설정 등..?)

가이드 문서와 다른 메뉴얼들만 보았을때는 퍼포스 서버 성능 관리를 위한 기능 같아서 작업자들 입장에서 어떤 것들이 좋은지는 더 살펴봐야겠네요.
실제로 스트림간 스위치 성능이 다른지 확인해보고 추가 내용으로 포스트해보겠습니다.

다른 Perforce 가이드 문서들

Perforce Trigger로 jira key → jira url로 변경해보기

이전 글 돌아보기

P4 trigger 설정하기: https://pineoc.github.io/blog/2022/01/31/perforce-trigger/

계기

이슈 트래커 연결: https://pineoc.github.io/blog/2022/05/21/think-issuetracker/

최근 이슈 트래커(Jira)랑 Perforce를 연결해보려는 고민을 했었습니다.
내부 엔지니어 피드백으로 “P4V에서 History탭을 볼 때, Changelist에 Jira Key가 있다면 Jira 링크로 연결되었으면 좋겠다”고 말씀해주셨어요.

업무할 때 큰 도움이 될 것 같다는 생각에 간단하게 할 수 있는 방법이 있지 않을까 싶어서 방법을 찾아보기 시작했습니다.

제가 생각한 방법은 2가지 정도였습니다.

  1. Perforce에 Submit할 때 P4 Trigger를 이용해서 Changelist를 서밋할 때, Description을 받아서 Jira Key → Jira URL로 변경해주는 방법
  2. P4 custom HTML Tool을 이용해서 P4 changelist을 볼 때 Description을 받아 Jira Key → Jira URL로 변경해서 보여주는 방법
  3. P4에서 Job 기능을 이용해서 Jira - P4 Job을 연결, Perforce와 Jira 정보 체계를 엮는 방법

이번 글에서는 1번 방법을 고민한 흔적을 공유해보려 합니다.

실제로 설정해보시려면 스크립트 구성 ~ 트리거 설정까지 참고하여 따라 진행해보시면 될 것 같습니다. 👍

1. P4 submit, populate 할 때 URL 변경해보기

https://www.perforce.com/manuals/p4sag/Content/P4SAG/scripting.triggers.submits.html

우리의 목적은 Changelist를 서밋할 때, Description을 변경하는 것이니 submit할 때 Perforce가 어떻게 동작하는지 알아야합니다.

https://www.perforce.com/manuals/p4sag/Content/Resources/Images/p4sag-triggers.png

내부 동작을 보니 이벤트는 change-submit → change-content → change-commit로 우리는 change-submit 쯤 Description 정보를 가져와서 변경하면되지 않을까 싶습니다.

각 이벤트 상세는 가이드 문서에 있네요.

  • change-submit: 변경 목록 생성 후 파일 전송 전에 제출 트리거를 실행합니다. 트리거가 파일 내용에 액세스할 수 없습니다.
  • change-content: 변경 목록 생성 및 파일 전송 후, 그러나 파일 커밋 전에 제출 트리거를 실행합니다.
  • change-commit: 변경 목록 생성, 파일 전송 및 변경 목록 커밋 후에 제출 트리거를 실행합니다.

트리거 설정 작업해봅니다.

참고: change-submit시 볼 수 있는 changelist는 아직 commit된 CL이 아니기에 pending changelist를 받게됩니다.
https://www.perforce.com/manuals/p4sag/Content/P4SAG/scripting.triggers.variables.html
change-submit trigger is passed the pending changelist number; a change-commit trigger receives the committed changelist number.

스크립트 구성

스크립트의 실행 순서를 대충 정리해보면 아래와 같겠습니다.

  1. change-commit 이벤트를 받아 스크립트를 실행
  2. 이벤트와 함께 받은 Changelist에서 Description을 가져온다.
  3. Description에서 Jira key를 확인, Description 마지막에 JIRA 항목으로 링크들을 만들어 추가
  4. p4 –field Description=”3 단계 Description” change -o changelistNum | p4 change -if

스크립트 트리거 설정 전 환경 설정

아래 트러블 슈팅 쪽을 보시면 상세내용을 아실 수 있겠지만 Perforce 서버(P4D)쪽 환경 이슈가 있어서 사전 설정이 필요합니다.

  • P4D 환경 p4 client 설정
  • P4D 환경의 p4 user 권한 확인하여 admin 이상의 권한으로 설정

스크립트

트리거 설정

  • admin 권한을 가지고 있는 계정으로 p4 triggers 명령어 실행
1
2
Triggers:
submit_data_hook_Test change-commit //Test/... "C:\Program Files (x86)\Python38-32\python %//Test/mainline/Tool/P4Triggers/submit_data_hooks.py% %change%"
  • P4D 환경에 맞춰서 파이썬 경로 설정
  • 참고
    • 필요한 파라미터는 trigger variable 에서 각 이벤트별 사용할 수 있는 파라미터를 확인할 수 있습니다.

Trouble shootings

encoding(P4CHARSET) 이슈

python 스크립트에서 p4 description을 가져오는 라인에서 에러가 발생

'utf-8' codec can't decode byte 0xc0 에러가 발생했는데 왜 발생했나 봤더니 p4 client charset이 cp949(euc-kr)로 되었는 것으로 확인

p4 set P4CHARSET=utf8 로 설정 후 해결!

P4 trigger 설정 후 Submit해도 Description 바뀌지 않는 이슈

Try 1: change-submit 트리거로 스크립트를 실행함

→ Description이 바뀌지 않았음
→ p4 –field Description … | p4 change -i -u 명령어와 -f 옵션 모두 해보았으나 안됨

Try 2: change-commit 트리거로 변경하고 스크립트 -f 옵션을 넣음

→ Description이 바뀌지 않았음

Try 3: stackoverflow에 물어보자

https://stackoverflow.com/questions/72506774/p4-triggers-edit-changelist-description-after-submit-on-client
→ 방법은 대략 알았지만 에러가 있다! 스크립트 외에 다른 문제가 있을 것 같아 에러 메세지를 더 분석해보았습니다.

dm-UpdateChangeSpecF 에러

1
CompletedProcess(args=['p4', 'change', '-if'], returncode=1, stdout=b'', stderr=b"Operation 'dm-UpdateChangeSpecF' failed.\r\nRequired parameter 'data' not set!\r\n")

위와 같은 에러가 나는데 가만히 보니 영어만 있는 CL에서는 에러가 발생하지 않음.
한국어, 중국어, 일본어와 같이 아시아권 언어에 또 문제가 있는가보다 😂

관련 이슈 리포트 링크: https://youtrack.jetbrains.com/issue/IDEA-102104

✨ 스크립트쪽 input 값에 .decode(‘cp949’).encode(‘utf-8’) 해서 강제로 utf8로 변환해주었음. 해결!

Client ‘test’ unknown - use ‘client’ command to create it. 에러

실제로 P4D(퍼포스 서버)가 동작하는 곳에 트리거 설정 후 테스트 해보았더니
Client 'test' unknown - use 'client' command to create it. 라는 에러가 발생함

대충봐도 client가 설정되지 않았으니 client 즉 workspace를 설정해야 CL을 수정할 수 있다는 것으로 보입니다.

✨ P4D 동작하는 환경에 client 설정 후 트리거 동작. 해결!
→ 추가로 P4D 동작하는 환경에 유저 권한도 admin 또는 super 권한을 설정해줘야합니다.

마무리

이번에 트리거 설정하면서 P4D 환경에 설정할 것들도 많고, 스크립트에서도 신경써야할 것이 많은 점을 배웠네요.
사실 파일 검사나 Description 검사정도만 한다면 권한 문제는 없었을텐데 다른 사람이 작업한 설명을 수정하는 것이니 권한이 필요한 트리거 작업이었네요.
실제로 설정해보시려면 스크립트 구성 ~ 트리거 설정까지 따라 진행해보시면 될 것 같습니다.
어렵거나 모호한 부분이 있다면 편하게 질문해주세요! 💪

Perforce Swarm 소개

Perforce Swarm?

이번 포스트에는 Perforce를 사용할 때 코드 리뷰를 하기 위해 사용하는 서비스인 Swarm을 소개해보려합니다.

공식 홈페이지: https://www.perforce.com/ko/jepum/helix-swarm

사실 Github, Gitlab, Bitbucket등 다른 소스 관리 서비스에서 기본적으로 제공하는 것을 따로 서비스로 제공하는 것이라 설치나 접근성 면에서 살짝 부족한 면은 좀 있습니다.
Swarm 기능은 다른 소스 관리 서비스와 거의 동일하지만 살짝 훑어보겠습니다.

Swarm 소개

공식 홈페이지에 따르면 아래와 같은 기능을 소개하고 있습니다.

더 나은 코드를 위한 공동 작업 / 맞춤 알림

  • 기본적인 리뷰 기능에 대한 소개입니다
  • 화면이 가로로 분할되어 코드 변경 사항을 확인할 수 있고 코드에 바로 코멘트할 수 있습니다
  • 사용자를 멘션할 수 있고 태스크를 만들어서 할당할 수 있습니다

그 외의 기능들

  • 글로벌 리뷰 대시보드
  • 멀티 팩터 인증
  • CI/CD 자동화
  • 다양한 컨텐츠 리뷰

사실 코드 리뷰 서비스라 다른 기능에 대한 소개는 부가적인 내용들이어서 스킵했습니다 😈
중요한 것은 리뷰 시스템이 얼마나 기본에 충실하냐인 것 같아요

Swarm 맛보기

https://swarm.workshop.perforce.com/

Swarm workshop이라는 서비스를 Perforce에서 운영하고 있는데 Swarm 동작이 어떻게되는지 알 수 있습니다. Github 오픈소스 저장소처럼 어떻게 리뷰가 이뤄지고 코멘트가 어떻게 보이는지 알 수 있어요.

https://swarm.workshop.perforce.com/explore/ 여기서 어떤 프로젝트가 있는지 볼 수 있으니 한번 개발이 활발한 프로젝트를 하나 들어가서 보겠습니다

Perforce 서버 쪽 패키지 관리 쪽 스크립트 저장소가 최근 활발했네요. 요것으로 보겠습니다.
https://swarm.workshop.perforce.com/projects/perforce-software-sdp/reviews/

Swarm workshop

작업 내역을 보니 최근 커밋, 리뷰 요청을 한 분이 열심히하고 있군요 ㅎㅎ 😸

  • 리뷰 페이지 상단에는 브랜치, 리뷰자 유무, 검토 필요/수정 필요/승인됨 등 리뷰 현황을 필터링할 수 있는 기능이 있습니다.
  • 리뷰 진행 상황(열림/닫힘)에 따라 볼 수 있기도 하네요.

대부분의 기능이 Github과 비슷하긴 하지만 열림/닫힘으로 표현되어있으니 리뷰가 완료되서 머지가 된 것인지 알려면 닫힘 탭으로 가서 “승인됨” 상태로 필터링해야 “이건 머지가 되지 않았을까?” 알 수 있겠네요.
사실 정말 머지되었는지 알기는 어렵습니다. 승인만 되었지 실제 작업자가 머지 안했을 수 있으니까요.

참고: Github Pull requests 화면

참고: Github Pull requests 화면

실제 Swarm 서비스 화면

Swarm My dashboard

Swarm Project overview

Swarm Review screen

Swarm workshop 화면과 차이가 크지만 다른 소스 관리 서비스의 코드리뷰 기능과 비슷합니다.
다만 회사에서 사용할때 아쉬웠던 점은 코드에 맞춰 하이라이팅되는 것이 부족하다고 느꼈었네요.

Swarm 가이드 문서

https://swarm.workshop.perforce.com/docs/ko/

Perforce 쪽에서 만든 가이드 문서(한국어)가 있는데 2015년 문서네요. 😂
(영문 가이드 문서도 2016년 버전이라 사실상 관리가 잘 안되고 있는 것처럼 보입니다 ㅎㅎ..)

최신은 따로 Perforce쪽에 있으니 여기를 보시는게 나을 것 같습니다.
https://www.perforce.com/manuals/swarm/Content/Swarm/home-swarm.html

마무리

이렇게 Swarm을 짧게 살펴보았는데 그동안 다른 소스 관리 서비스에서 사용했던 코드 리뷰 시스템에 비해서 너무 날 것이 아닌가 싶기도 합니다. (뭔가 UI도 굉장히 옛날 것이고…)

최신 프론트엔드 UI 맛으로 업데이트할 계획은 없는지 궁금하지만 사실 뭐… 핵심 기능인 코드 리뷰가 잘 이뤄질 수만 있으면 된 것이겠죠 ㅎㅎ

다른 게임 개발사에서는 Swarm을 어떻게 쓰고 계신지 궁금하긴하네요.
다음에는 저희는 Swarm을 어떻게 구성해서 사용하고 있는지 살펴보고 포스트할 수 있는게 있다면 남겨보겠습니다. 감사합니다~

Perforce Trigger 설정

Perforce Trigger?

퍼포스 시스템에서 변경사항을 서밋하거나 changelist가 생성될 때 등
이벤트에 따라 스크립트를 실행시켜 여러가지 커스터마이즈할 수 있는 기능입니다.

https://www.perforce.com/manuals/p4sag/Content/P4SAG/chapter.scripting.triggers.html

가이드 문서는 서버 관리자 가이드 문서로 써있는데 개발환경 개선을 해볼 수 있는 여지가 많은 시스템입니다.
한국어 문서가 많지 않아 이번에 포스트를 작성해보게 되었어요. 😎

준비물 / Pre-requisite

  • 당연하지만 Perforce(P4V)가 설치되어있어야합니다.
  • Perforce 관리자 계정(Admin)이 있어야합니다.
    • 관리자 계정이 아니면 ‘You don’t have permission for this operation.’ 라는 오류를 만납니다.
  • Perforce 서버(P4D)가 동작하고 있는 환경에 실행하고자하는 스크립트 프로그램이 설치되어있어야합니다.
    • Python, Node, Perl, Ruby 등

트리거 설정하기

Trigger 설정을 시작하는 방법은 간단합니다.
p4 로그인이 된 상태에서 cmd(또는 터미널)에서 p4 triggers 커맨드로 트리거 관리 파일을 수정합니다.
수정 후 저장하면 트리거 설정 완료! 자세한 것은 아래에서 더 다뤄볼게요.

p4 triggers 실행

p4 triggers를 실행하면 컴퓨터에 설정한 텍스트 수정 프로그램으로 트리거 설정 파일이 열립니다.
아래와 같은 내용을 보실 수 있을거에요.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Perforce Submit and Form Validating Trigger Specifications.
#
# Triggers: a list of triggers; one per line. Each trigger line must be
# indented with spaces or tabs in the form. Each line has four
# elements:
#
# Name: The name of the trigger.
#
# Type: 'archive' external archive access triggers
# 'bgtask ' server-side user processes
# 'auth-check' check authentication trigger
# 'auth-check-sso' sso check authentication trigger
# 'auth-set' set authentication trigger
# 'change-submit' pre-submit triggers
# 'change-content' modify content submit triggers
# 'change-commit' post-submit triggers
# ...
#
# For example,
#
# Triggers:
# cscheck change-submit //depot/... "cmd %changelist%"
# no-oblits command pre-user-obliterate fail
# mkspec form-out client "%quote%//trig/scr.pl%quote%"
# daily_verify bgtask unset "verify.pl"
#
# See 'p4 help triggers' for more information about triggers.

Triggers:
submit_data_hook_Test change-commit //Test/... "C:\Program Files (x86)\Python38-32\python %//Test/mainline/Tool/P4Triggers/submit_data_hooks.py% %change%"

파일에는 트리거에 대한 설명 주석과 이벤트 타입, 트리거 예시가 있습니다.
제가 설정한 트리거는 아래 4개 정도를 사용하고 있고 모두 change-commit 이벤트를 트리거하고 있습니다.

설정할 트리거 이벤트 고르기

앞서 파일에서 보실 수 있듯이 트리거할 수 있는 이벤트가 많습니다.
하나하나 알아보기에는 많아서 저는 어떤 것들을 사용하는지 + 가이드 문서를 공유해드릴게요.

가이드 문서: https://www.perforce.com/manuals/p4sag/Content/P4SAG/chapter.scripting.triggers.html

포스트 시작할때에도 공유드렸던 가이드 문서인데 하위에 submit, populate, push, fetch 등의 이벤트에 대한 정의를 보실 수 있습니다. 예시도 같이 있으니 참고하면 좋을 것 같습니다.

제가 설정한 트리거를 설명드리면, 주로 change-commit 이벤트를 트리거에 사용하고 있습니다.
change-commit은 changelist가 서버에 커밋되어 저장될 경우 트리거되는 이벤트입니다.

상세 설명: change-commit trigger guide Perforce guide docs

change-commit 이벤트 외에도 changelist 만들때 description 템플릿 폼 적용을 위해 form-out 이벤트를 사용해서 만들 수도 있습니다.

form-out trigger guide: Perforce guide docs
가이드 문서에서는 기본 클라이언트 워크스페이스 뷰를 설정하는 스크립트를 다뤘네요.

스크립트 작성

Submit event trigger 문서 가이드 문서 예시로는 쉘스크립트로 “체인지리스트가 서밋될 경우 파일을 수정했던 사용자들에게 이메일로 수정 사항을 공유”하는 스크립트를 보여주고 있네요.

python, node, perl 등 그 외의 스크립트를 사용하고자할 경우, 프로그램 경로를 잘 맞춰서 설정할 수 있습니다.
제가 사용하고 있는 스크립트는 요렇게 생겼습니다.
스크립트 목적은 작업된 changelist 내역이 슬랙 채널 통해서 공유되도록 하는 것입니다.

자세한 내용은 위 스크립트를 참고해보세요 😁

이벤트에 맞는 스크립트 설정

change-commit(서밋 완료) 이벤트에 맞춰 스크립트가 실행되도록 트리거를 설정해보았습니다.
이벤트 트리거가 발생되어 스크립트를 실행할 수 있도록 프로그램 경로 + 스크립트 + 파라미터 를 아래와 같이 입력합니다.

  1. 프로그램 경로는 P4D 실행되고 있는 경로에서 프로그램이 설치된 경로를 입력
  2. 스크립트 경로는 보통 Perforce에서 스크립트를 관리하니 경로에 맞춰 입력
  3. 필요한 파라미터를 입력해줍니다.
    1. 필요한 파라미터는 trigger variable 에서 각 이벤트별 사용할 수 있는 파라미터를 확인할 수 있습니다.
1
2
3
# p4 triggers comments ...
Triggers:
submit_data_hook_Test change-commit //Test/... "C:\Program Files (x86)\Python38-32\python %//Test/mainline/Tool/P4Triggers/submit_data_hooks.py% %change%"

설정 완료!

위와 같이 트리거 설정 파일을 수정, 저장하고나면 트리거 설정을 완료됩니다.

트리거 설정 소개 마무리

설정과 관련해서 간단하게 소개해보았고 제가 설정해서 사용하고 있는 스크립트도 공유드려보았습니다. 간단하게 수정된 사항이 발생할 경우 슬랙으로 정보를 공유하는 방식은 응용할 것이 많아보이니 참고해서 설정해보시면 좋을 것 같네요. 💪