[업무 이해] Plastic SCM 게시물에서도 언급했듯이 회사에서 여러가지 문제로 기존에 사용하던 Plastic SCM에서 Git Enterprise로 이관하는 작업을 진행한다.
각각의 모듈(Repository)이 xlink라는 기능을 통해 하나의 Repository에 통합 되어있는데, 기존 PSCM 상에서 사용하던 모듈명(Repository명)이 Git Repository Rule에 위배되기도 하고, 또, 기존 모델이 세분화되거나 모델명이 변경되어 각 모듈에 대응되는 Project Directory명으로 새롭게 통합하는 Tool을 제작하고, Git에는 이렇게 만들어진 로컬 저장소의 Repository를 기반으로 Git Repository에 반영하는 작업을 하게 된다.
요구사항
각 모듈에 대응하는 Project Directory가 담긴 Excel 파일을 갖고 새롭게 xlink를 Output Path에 생성한다.
위 과정에서 이미 생성되어있는 xlink라면 Edit xlink 기능을 통해 changeset만 변경한다.
Changeset이 입력되지 않았을 때는 자동으로 Integration의 가장 최신 Changeset을 가져오도록 한다.
해당 변경 사항을 PSCM Repository 상에 Checkin 할 수 있도록 한다.
Tool 실행 시 진행중인지, 죽은건지 알 수가 없어, Status 확인 기능이 필요하다.
메인 화면
동작 방법
Tool의 bin 폴더 경로에 있는 Excel 파일을 기반으로 작동
Existing Repository Path는 Integration Path(통합되어 있는 저장소의 경로)를 의미한다.
Existing Changeset은 Integration의 기준 changeset을 의미하며 공백 입력시 자동으로 최신 changeset을 가져온다.
Create File Structure
Existing Repo와 Output Repo 모두 undo Chagnge를 수행
각각 가장 최근 CS로 스위치
Existing Repository Path의 Integration이 스위치 하기 전 CS와 최신 CS 간 Diff 하여 변동사항이 있는 xlink들만 edit xlink를 수행
이 외 Integration에 새로 생긴 xlink의 경우 해당 폴더의 필요한 폴더 구조를 생성
이 때, 새롭게 생성된 폴더 구조를 Check-in 하지 않으면 오류 발생
Run
Integration의 Existing Changeset의 각 모듈에 해당하는 ProjectDirectory에 xlink를 생성
이미 xlink가 걸려있는 경우 editXlink를 수행
모든 xlink를 생성 / 편집한 후 참고한 Excel 파일에 각각의 모듈 Repository, xlink 생성한 Changeset을 추가로 작성한 파일을 생성
Check-in
모든 변경사항을 체크인 함. 이때, Checkin Comments는 PSCM 상에서 수정 필요.
개선 사항
프로그램에서 로그 관리 / 처리를 따로 수행하고 있지 않아 개발 및 오류 발생시 장애가 있다.
현재 로그를 따로 남기진 않으나 오류 발생 시 다이얼로그로 알려주기만 함.
Check-in 기능이 완벽하지 못하다. -> 특정 Comments Rule.txt 파일을 기반으로 Checkin 기능을 수행하려 했으나 무슨 이유인지 수행 되지 않음
마치며
해당 Tool을 제작하며 PSCM 명령어와 Repository, Changeset, xlink 등 구조에 대해 알 게 되었고, Excel 데이터 접근, C#에서 command 명령어 사용 등 많은 경험을 할 수 있었다. 또한, 잦은 오류와 실수로 로그 관리의 중요성을 알 게 되었다.