[형상 관리 이관 작업] xlink Tool 개발

  1. 개요
  2. 요구사항
  3. 메인 화면
  4. 동작 방법
  5. 개선 사항
  6. 마치며

개요


  • [업무 이해] 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 명령어 사용 등 많은 경험을 할 수 있었다. 또한, 잦은 오류와 실수로 로그 관리의 중요성을 알 게 되었다.