Plastic SCM?
📝 소프트웨어 개발 및 버전 관리를 위한 분산형 버전 관리 시스템
협업, 소스코드 관리에 사용됨.
- 분산형 : 중앙 서버에 연결되어 있지 않아도 작업을 수행할 수 있음. 로컬에서 작업 후 변경 사항을 중앙에 push.
- 대규모 프로젝트 협업에 유용.
- 시각화 및 분석 도구를 통해 프로젝트를 관리, 추적할 수 있음
Why Plastic SCM?
📝 분산형 버전 관리 시스템의 유연성과 확장성을 통해 다양한 프로젝트 및 팀에 적합한 솔루션을 제공함
- 분산형 버전 관리 지원
- 오프라인 상태에서도 작업 수행 가능
- 중앙 서버에 대한 의존성을 낮춰 유연성 제공
- 유연성 및 확장성
- branch, merge, tag 등의 기능으로 프로젝트를 관리, 협업할 수 있음.
- 대규모 프로젝트 및 복잡한 코드베이스에 대한 확장성을 제공해 팀 협업에 적합
- 시각화 및 분석 도구 제공
- Branch Explorer : 프로젝트의 브랜치 구조를 시각적으로 표현. 각 브랜치의 관계와 상태를 쉽게 이해할 수 있음. 브랜치간의 머지 및 히스토리 확인 가능
- Semantic Diff : 소스코드의 변경사항을 시각적으로 비교. 코드변경의 영향을 더 잘 이해하고 코드 리뷰를 수행할 수 있음
- Code Reviews : 코드리뷰 기능 제공으로 코드 변경사항을 검토하고 의견을 공유할 수 있음
- Time-lapse View : 파일의 변경 내역을 시간에 따라 시각적으로 보여줌. 파일의 변경 과정을 이해하고 특정 시점으로 되돌아갈 수 있음
- Code Metrics : 코드의 품질과 성능을 분석함. 코드베이스의 개선점을 식별, 최적화 할 수 있음
- 다양한 통합 기능
- 다양한 개발 및 협업 도구와 통합 가능.
- Visual Studio 및 Visual Studio Code 통합
- Unity 통합
- JetBrains IDE 통합
- Slack 통합
- Jenkins 통합
How to use?
plastic SCM 회원가입 필요
Unity
- window - plastic SCM 활성화
- Plastic account 로그인
- 현재 프로젝트 workspace화
plastic SCM client를 이용할 경우
Plastic SCM - Download Plastic SCM
plastic SCM 프로그램에서 가시성 좋게 관리 가능
IntelliJ
- Plastic SCM plugin 설치
- File - Settings - Plugins 에서 “Plastic SCM” 검색
- 설치 완료 후 IDE 재시작
- Plastic SCM repository에 연결하기
- VCS - Enable Version Control Integration
- Version Control Integration 대화상자에서 Plastic SCM 선택
- URL 인증
- OK 클릭
- commit and push
- 변경사항 스테이징하기
- 변경사항 선택 Git - Add
- 스테이징 할 파일 선택한 후 "Ctrl + Alt + A" (Windows/Linux) or "Cmd + Alt + A" (macOS)
- 커밋하기
- 상단 메뉴 VCS - Git - Commit
- 커밋할 변경 사항 선택
- 커밋메시지 입력
- Commit 클릭
- 푸시하기
- 상단 메뉴 VCS - Git - Push
- 푸시할 브랜치 선택
- Push 클릭
- 원격 저장소 인증 정보 입력
- Ok 클릭
Plastic SCM terminology & VCS terminology
| Git | Plastic SCM | 설명 |
|---|
| commit | checkin | repository에 변경점 전달 |
| commit | changeset | 각 commit에 대한 commit hash |
| checkout | update | local 저장소로 working copy를 받음 |
| - | checkout | 파일 수정이 필요할 때 사용 |
| master | main | 메인 브랜치 |
| repository | repository | version, branch, merge가 저장되는 곳 |
| workingtree | workspace | 중앙 서버의 프로젝트를 로컬저장소에 다운로드 한 후 작업하게 되는 디렉토리 |
Plastic SCM vs Git
- Git은 파일의 이동을 생성, 삭제로 기록, plastic SCM은 이동으로 기록되어 파일 히스토리 관리에 용이하다
- Git은 빈 폴더를 커밋, 푸시하지 않지만 plastic SCM은 빈 폴더에 대해서도 checkin이 가능하고. 히스토리 관리도 된다
- unity는 모든 asset에 대해 meta 파일을 생성해 metadata를 관리하는데, 빈 폴더에도 .meta 파일이 생성된다. git은 이를 commit하지 못하기에 폴더의 .meta 파일은 커밋되지만 정작 그 빈 폴더는 commit되지 못해 이후 그 폴더를 수정하게 되면 .meta 파일은 존재하지 않는 폴더에 대한 메타데이터로 존재하게 된다.
- unity 에디터에 플러그인이 자체 내장되어 있어 접근, 사용이 편리하다. Plastic SCM을 따로 설치하지 않아도 제공되는 플러그인만으로 충분히 작업 할 수 있다.
- Git으로는 작업하기 어려운 용량이 큰 asset을 쉽고 빠르게 관리할 수 있다.
- unity 작업에 특화된 merge 기능 및 conflict 처리를 지원한다.
Q. Unity 소스코드만 Plastic SCM으로 관리하고 Plastic SCM repository를 Gitlab repository에 서브모듈로 추가하는 방법으로 이용할 수 있을까?
- 안됨. git submodule은 git respository 안에 다른 git repository를 포함하는 방법으로, git을 기반으로 한 프로젝트에서 사용됨. plastic SCM은 git과 호환되지 않는 다른 VCS이기 때문에 불가능함.
- Gitlab에서 plastic SCM repository의 URL을 포함하는 README 파일 등을 통해 Plastic SCM repository의 위치를 참조할 수 있음.