SW 리뷰: Perforce

소프트웨어 프로젝트에서 흔히 “소스코드 관리툴 (Source Code Management Tool;SCM)”이라고 부르는 물건들을 쓰게 된다.[1]

학부생/대학원생 시절에, 그리고 회사 입사한 이래로 subversion (SVN) 이라는 오픈소스 도구를 써왔는데, 지금 하는 프로젝트에서 소스관리툴을 Perforce라는 상용 도구로 바꾸게 되었다. 근 몇 주가 쓰면서 느낀 점을 정리해보겠다.

  • 속도가 빠르다. 특히 크기가 큰 바이너리 파일도 꽤나 빠르게 전송한다. SVN도 1.5.0 버젼에서 속도가 약간 빨라진 것 같지만[2] perforce 쪽이 더 빠른 느낌?
  • 변경 사항 태깅을 지원한다. SVN은 체크아웃 자체가 일종의 branch인 것처럼 동작한다. Perforce도 약간 비슷한 개념인데, 한 번의 체크아웃 후 “Changelist”라는 목록으로 변경사항들을 관리하게 된다. 즉 개별 changelist가 일종의 local branch 비슷한 기능을 한다. Commit 단위도 이 녀석이라 변경 사항 여러 개를 동시에 유지하기가 편리하다. 사실 이 기능이 가장 만족스러움…
  • Perforce 자체가 굳이 따지자면 svn보다는 cvs에 가까운 개념으로 동작한다. 변경을 위해서는 일종의 checkout을 해야하고, 누가 변경하고 있는지도 “다른 사람에게” 보이는 형태다. 비슷하게 changelist 들도 뭐가 있는지 어떤 머신에서 누가 수정하고 있는지 서로 보인다.[3]
  • 디렉토리 별 권한 설정은 perforce 쪽이 조금 더 쉬워 보인다. 좀 더 세세한 권한 관리가 가능

…정도. git + svn 을 쓰려다가 한글 파일에서 계속 문제가 생겨서[4] 포기했는데, 대충 그거의 적당한 부분집합 정도를 perforce에서 쓰게 된 듯. Trac 과의 연동도 SVN 만큼은 아니지만 꽤 잘 되는 편이고, 나름 만족스럽게 사용 중이다. 덤으로 CruiseControl.NET 에서도 별로 설정 차이가 없어서, 몇 줄 고치고 나니 빌드도 잘 된다.

다만, 가격이 비-_-싼 상용툴이란건 좀 문제임. 라이센스가 있으니 쓰는 거지 굳이 사서 쓰기엔 뭔가 불만족스럽다. 나중에 툴을 고를 시점이 온다면 — 내가 결정권이 있을 때의 얘기지만 — git 가 윈도우환경에서 충분히 안정화된다면 git + svn 같은 걸 생각하지 않을까 한다. (git 만 쓰는 것도 가능하고)

  1. 사실 안 쓰면 망하기 딱 좋다 []
  2. 아직 일부 프로젝트는 SVN 기반으로 관리됨 []
  3. 물론 권한 설정에서 어느 정도 제어가 되는 것 같긴함 []
  4. MacBook이나 linux-box에선 잘되는 걸로 봐선 뭐가 문제일지 짐작도 안가긴 하지만 orz []

Published by

rein

나는 ...

6 thoughts on “SW 리뷰: Perforce”

  1. 요즘 svn 이랑 딴 버전 컨트롤 시스템을 같이 사용하는 게 가끔 보이던데, 대체 어떻게 돌아가는 걸지 전혀 예상이 안되는 ㅎㅎ

  2. git 같은 애는 분산 SCM이기도 한데, 보통은

    (원본)SVN 서버 – 로컬 git 체크아웃 – 로컬 git 브랜치

    형태로 주고 받던데요. 다른 것도 비슷하지 않을까 멋대로 추측 중.

    실제로 git만 쓰면 원본 SVN 서버 대신에 전역 git 서버가 있겠지만;

  3. rein/ 오 감사..

    이미 내 컴퓨터에는 git이 깔렸고, 자바 프로젝트도 거기 들어갔다는(…) 물론 첫 댓글 달 때는 그렇지 않았음. 근데 git에 대해서 리누스가 발표하는 동영상에서 cvs랑 svn 참 잘 까더라(…) 비난도 그 정도면 예술의 경지였음 ;;

  4. Pingback: rein's world

Leave a Reply