하지만 태스크 스트림을 일반 스트림으로 변환하면 해당 일반 스트림에 상위 스트림을 다시 지정할 수 있습니다.
💡 태스크 스트림이 다른 스트림과 다른점 💡 P4V나 가이드 문서를 확인해보니 태스크 스트림만 unload 할 수 있네요. mainline, development, release 스트림은 삭제만 가능하고 Virtual 스트림은 다른 유형의 스트림이니 제외하고 나면 태스크 스트림만 가능합니다. 스트림이 많을수록 서버 성능에 영향이 있을 수 있으니 사용하지 않는 스트림의 정보를 unload하고 데이터를 로딩하지 않는 형태로 서버 성능을 관리할 수 있는 형태인 것 같네요. 추가로 Unload할 수 있는 것은 워크스페이스인데 퍼포스 서버 쪽에서 관리하는 데이터를 unload해서 서버 성능 관리를 좀 해야하나 봅니다. (저희도 workspace, stream 전체 현황 검토해서 정리가 필요하겠네요 ㅎㅎ 😂)
정리
정리해보면, 태스크 스트림은 작은 작업, 버그 수정 등을 위한 피쳐 브랜치로 사용할 수 있는 스트림이라고 할 수 있네요. 다른 스트림들에 비해 스위칭 속도가 더 빠르거나 그런 것은 아닌 것 같지만 어떻게 스트림을 생성했냐에 따라 다를 수 있을 것 같습니다. (스트림 생성시 부모 스트림의 데이터를 그대로 사용하는 설정 등..?)
가이드 문서와 다른 메뉴얼들만 보았을때는 퍼포스 서버 성능 관리를 위한 기능 같아서 작업자들 입장에서 어떤 것들이 좋은지는 더 살펴봐야겠네요. 실제로 스트림간 스위치 성능이 다른지 확인해보고 추가 내용으로 포스트해보겠습니다.
→ ✨ 스크립트쪽 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 검사정도만 한다면 권한 문제는 없었을텐데 다른 사람이 작업한 설명을 수정하는 것이니 권한이 필요한 트리거 작업이었네요. 실제로 설정해보시려면 스크립트 구성 ~ 트리거 설정까지 따라 진행해보시면 될 것 같습니다. 어렵거나 모호한 부분이 있다면 편하게 질문해주세요! 💪
리뷰 페이지 상단에는 브랜치, 리뷰자 유무, 검토 필요/수정 필요/승인됨 등 리뷰 현황을 필터링할 수 있는 기능이 있습니다.
리뷰 진행 상황(열림/닫힘)에 따라 볼 수 있기도 하네요.
대부분의 기능이 Github과 비슷하긴 하지만 열림/닫힘으로 표현되어있으니 리뷰가 완료되서 머지가 된 것인지 알려면 닫힘 탭으로 가서 “승인됨” 상태로 필터링해야 “이건 머지가 되지 않았을까?” 알 수 있겠네요. 사실 정말 머지되었는지 알기는 어렵습니다. 승인만 되었지 실제 작업자가 머지 안했을 수 있으니까요.
참고: Github Pull requests 화면
실제 Swarm 서비스 화면
Swarm workshop 화면과 차이가 크지만 다른 소스 관리 서비스의 코드리뷰 기능과 비슷합니다. 다만 회사에서 사용할때 아쉬웠던 점은 코드에 맞춰 하이라이팅되는 것이 부족하다고 느꼈었네요.
# 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.