아이폰 어플 개발을 열공중. 맥에는 Xcode라는 훌륭한 통합개발환경(IDE)이 있다. 처음 쓰는 놈이라 낯설지만, 통합개발환경이라 쉽다. 금방 손에 익게 될 꺼란 기대.
프로젝트 생성하고, 파일 생성하고, 편집하는 건 뭐 그럭저럭. 그런데, 소스코드관리 기능을 사용하는 건 조금 불편하다. 막강하고 편리한 Eclipse에 너무 길들여진 탓일까?
Xcode 메뉴를 보면, 아래와 같이 SCM이라는 항목이 있다.
제일 먼저 해줘야 하는 작업은, 당근, Repository를 지정해주는 일이다. Subversion Repository가 이미 따로 마련되어 있어야 한다.
SCM->Configure SCM Repositories 메뉴를 누르면, 아래 화면과 같이 대화창이 뜨는데, Name과 URL을 채우면 다른 건 자동으로 채워진다. 물론, Password는 따로 넣어줘야…
그 다음, SCM->Repositories 메뉴를 눌러서 아래 창을 띄운 다음, 원하는 작업을 진행한다.
레파지토리 설정을 처음 막 한 상태라면, 그리고 아직 올려둔 프로젝트가 없는 상태라면, 당근 제일 먼저 해야 할 작업은 Import 다. 레파지토리로 소스코드를 제일 처음 올리는 일이다. 그리고, 로컬 컴퓨터의 소스 코드는 ‘휴지통’에 던진다.
그 다음은, Checkout으로 올린 프로젝트를 내려 받는다. 이제 소스 관리가 적용된 프로젝트 폴더가 만들어 졌다. 짜잔. 터미널 쉘을 열어서 ls –a 옵션으로 리스팅해보면, .svn이라는 숨겨진 비밀 폴더가 해당 프로젝트 폴더에 만들어진 걸 확인할 수 있다. ‘소스 관리’가 되고 있는 폴더라는 뜻이다. 이 폴더에서는 파일 복사/삭제/이름변경을 함부로 해선 안된다. svn 도구의 도움을 받아서 실행해야 문제가 발생하지 않는다.
좀더 자세한 내용은, 아래 문서를 읽어보도록 한다.
- http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeSourceManagement/30-Source_Control/source_control.html 애플 개발자 사이트 소스 관리 설명 문서
위 문서에 따르면, 아이폰 애플리케이션 개발시에 생기는 build 폴더를 프로젝트 폴더와는 다른 곳에 놓아두라고 권고한다. 하지만, 매번 프로젝트 생성할 때마다 옵션을 조정하는 일도 번거롭고 새로 폴더 이름을 지정해주는 일도 꽤 귀찮다. 그냥 내버려 두면, build 폴더의 변경내역이 소스 관리 서버에 올라가게 되고 매번 컴파일/리빌딩 될 때마다 자꾸 커밋(commit) 해야 할 것 같은 압박(?)에 시달리게 된다. 어떻게 하면 좋을까?
Xcode의 SCM에는 svn 관련된 세부 사항을 조율할 수 있는 기능이 없다. 예를 들어, svn:igrnore 와 같은 property를 지정하는 기능이 없다. (찾을 수가 없다)
맥에서도 윈도의 tortoiseSvn과 같은 GUI svn 클라이언트 프로그램이 여럿 있긴 하다. 그 중에서 versions가 제일 유명한 듯.
http://versionsapp.com/ 근데, 유료라서, –.--;; 있는 집에서만 쓸 수 있다. 그럼, 없는 집에서는? 고전적인 svn command tool를 사용하는 수 밖에…
http://subversion.apache.org/packages.html#osx 링크가 바뀜. 아파치 프로젝트로 들어갔나 보다.
서브버전 개발사 사이트에 가면, http://subversion.tigris.org/getting.html#osx 맥용 프로그램 패키지가 몇 개 있다.
이 가운데에서, openCollaNet을 골라 다운로드 받은 다음 설치했다. 인터넷 상의 문서들에 따르면, 설치 후에 무슨 설정을 해줘야 한다는데, 그냥 안해줘도 다 된다. /opt에 설치되지 않고 /usr/bin에 그냥 설치됨. 이제, command 모드에서 svn 명령을 사용할 수 있게 되었다.
[생각이 좀 바뀜: 2010/02/21]
아무래도 오픈소스들은 MacPortst를 이용해서 설치하는 게 좋겠다. 업그레이드도 그렇고, 나중에 uninstall하기도 편하고.... MacPorts는 OpenBSD 계열의 port와 똑같다. sudo port install subversion 뭐 이런 식이면 알아서 설치해준다.
아래와 같이 해당 프로젝트 폴더로 이동한 다음, svn propset svn:ignore build . 명령으로, 빌드(build) 폴더를 svn이 무시하도록 지정해주자.
적용해야 할 디렉토리가 좀 많으면, 아래와 같이 해줘도 된다.
svn propset svn:ignore build *
그러면, 현재 디렉토리 아래의 다른 디렉토리들에 모두 svn:ignore 속성이 걸린다.
이제, 프로젝트를 만든 후에 제일 먼저 할 일은, svn propset svn:ignore build . 해주는 일이다. 명령어가 한 번에 기억하긴 좀 어렵지만, 자꾸 해보면 손에 익는다. 그래도 가물거릴 땐, svn help의 도움을 받으면 된다.
이 설정으로, 빌드 폴더를 프로젝트 폴더 외부에 놓고 어쩌구 하지 않아도 된다. Xcode SCM의 기능을 자유롭게 사용하면 된다. 프로젝트 전체 단위로 commit / refresh / update 할 수 있고, 파일이나 폴더 단위로도 할 수 있다.
작은 팁 하나. Xcode Groups & Files 화면에서 팝업 메뉴로 SCM 칼럼을 추가할 수 있다.
암튼, 얼추 쓸 만 해졌다.
'개발 > App Developer' 카테고리의 다른 글
CGRect (0) | 2010.08.31 |
---|---|
앱 기기 별 등록 (0) | 2010.08.31 |
앱스토어 등록법 (0) | 2010.08.31 |
applicationDidFinishLaunching (0) | 2010.08.31 |
java xml 파싱 (0) | 2010.08.31 |