❗ 본 게시글은 '유나이트 서울 2020 - 유니티의 Plastic SCM을 이용한 게임 버전 관리' 영상과
'Unity 코리아 웨비나' (링크에서 신청 가능) 영상과 이미지를 기반으로 작성되었습니다.
유니티와의 연동을 강조하는 Plastic scm 메인 홈페이지
Plastic SCM (Unity plastic)은 버전 컨트롤 시스템으로서 Perforce, Git , SubVersion 과 같은 협업을 위한 형상 관리 도구이다. 2019 LTS 이상 버전의 Unity에는 Plastic SCM이 통합되어 있다. Plastic SCM의 특징을 간략히 정리해 보면,
간결한 UI 구성이 특징인 'Gluon'
같은 프로젝트 내에서도 Centralized 나 distributed 로 관리 방식을 프로그래머 선호에 따라 선택할 수 있다.
리팩토링된 class 구조를 class 다이어그램으로 표현하거나 함수, 메소드 이름의 세부사항 merge 같은 강력한 기능을 제공한다.
Git 과 P4 대비 우월한 밴치마킹 성능을 보인다.
1-3 명 규모의 소규모 팀과 0-5gb의 스토리지를 사용한다면 Plastic SCM Cloud Edition을 무료로 사용 가능하다. (Cloud Edition은 Plastic SCM 저장소를 클라우드에 저장 가능)
유니티 에디터 내부에서는 아래 사진과 같이 Window 탭에서 Plastic SCM 창을 열 수 있다. 활성화 하면 아래와 같이 Plastic account 로 로그인 하는 창과 현재 열려있는 project를 workspace화 하는 순차적 setup이 진행된다.
로그인을 완료하고 create workspace 버튼을 누르면 다음과 같이 워크스페이스를 생성하는 창으로 넘어간다. 이때, 체크인 기능에만 집중하는 Gluon 워크스페이스로 생성할 것인지, merging, branching 등의 기존 vcs의 기능을 다 하는 Plastic workspace로 생성할 것인지 선택할 수 있다.
설정을 모두 완료하면 다음과 같이 Plastic scm 기능을 활용 가능한 window로 진입할 수 있다.
Plastic SCM에서 사용되는 용어들을 대응되는 기존 VCS와 비교한 것이다.
Plastic SCM | Git | Perforce | 설명 |
---|---|---|---|
Checkin | Commit | Submit | repository에 변화점들을 전달한다.(Git의 commit에 해당) |
Changeset | Commit | Changelist | repository에 전달한 각 Checkin을 뜻함(Git에서 각 commit들을 1ea34 커밋과 같이 부르는 것에 해당) |
Update | Checkout | Sync | local 저장소로 working copy를 다운로드 한다. 예를 들어, 브랜치 변경 등에 사용 (Git의 Checkout에 해당) |
Checkout | --- | Edit | 파일 수정이 필요할때 사용 |
main | master | main | Git의 master branch나 Subverstion의 trunk에 해당, 자유롭게 rename 가능 |
Repository | Repository | Depot | 모든 version, branches, merges가 저장되는 장소 |
Workspace | Working tree | Workspace | 프로젝트가 로컬 저장소에 다운로드되고 작업하게 되는 디렉토리 |
Plastic SCM에서 제공하는 Branch Explorer은 다음과 같은 view 를 제공한다.
위 그림과 같이 branch로 분기된 작업은 main branch로 머지되는 상황에서 다음과 같은 view로 나타난다.
CI가 테스트를 완료하고 정상적으로 merge 가 완료되면 다음과 같은 view를 확인 할 수 있다.
Plastic 에서 branch는 changeset의 containers 로써 존재하지만, Git에서는 Pointers 일 뿐이다.
위 그림에서 3번째 commit(changeset)을 보면 Git은 merge 이후에 master에 종속되지만, Plastic에서는 task002에 종속되는 것을 확인 할 수있다.
Plastic 의 branch 들은 merge 이후에도 각 분기와 flow를 저장하며,
따라서 Plastic에서는 Branch는 삭제되지 않는다.
브랜치 탐색기에서 체인지 세트에 커서를 올리면 나오는 툴팁 이제, Plastic SCM GUI에서 확인할 수 있는 브랜치 탐색기의 각 기능들을 살펴보자.
먼저, 브랜치 탐색기에서 체인지세트에 마우스 커서를 올리면 대상 체인지 세트의 간략한 정보가 툴팁으로 표시된다.
Git의 commit 과 commit message에 해당되는 체인지 세트, 코멘트를 간략하게 확인할 수 있다.
체인지 세트를 마우스 우클릭 했을때 나오는 컨텍스트 메뉴 체인지 세트를 우클릭하면 다음과 같은 메뉴들을 확인 할 수있다.
메뉴명 | 기능 | 비고 |
---|---|---|
체인지 세트 비교 | ||
...브랜치 생성 | ||
...레이블링 | ||
...워크스페이스 전환 | ||
...병합 | ||
...체리픽 | ||
...다음으로 병합 | ||
다른 체인지 세트와 비교 | ||
이 체인지 세트의 레포지토리 탐색 | ||
...Plastic 드라이브에 마운트 | ||
부모 체인지 세트로 이동 | ||
새 다이어그램에 관한 브랜치 표시 | ||
이 체인지 세트에 대한 새 코드 검토 |