------------------------------------------------------------------------------------------------
출처: http://mcsd.springnote.com/pages/2079792
http://yunseong.tistory.com/category/Programming/iPhoneDev%20KB
------------------------------------------------------------------------------------------------
프로젝트 진행 시에 다수 작업, 디버깅, 백업의 의미로 버젼관리는 매우 중요합니다.
Xcode에서는 CVS, Subversion, Perforce, 3종류의 SCM(Software Configuration Management)
시스템을 지원합니다.
오픈소스로 유닉스/리눅스 계열에서 가장 오랫동안 많이 사용하는 버젼관리 시스템입니다.
OS X에는 기본으로 설치가 되어있어 바로 사용이 가능합니다.
Subversion
CVS를 대체하기 위해서 나온 버젼관리 시스템으로, CVS에 비해 많은 장점을 가지고 있습니다.
여기서는 Subversion을 이용해 보겠습니다.
Perforce
Perforce Software에서 제공하는 상용 버젼관리 툴입니다.
SVS와 Subversion에 관한 자세한 사항은 아래의 KLDP Wiki를 확인하시고,
여기서는 Xcode에서 Subversion을 사용하는 방법에 대해서 간단히 알아 보겠습니다.
맥 OS X용 Subversion 설치파일(dmg)을 다운로드 받습니다.
현재 버젼은 1.4.4로 설치 프로그램을 실행하시면 간단히 설치
하실 수 있습니다.
(소스 코드 설치를 원하시면 Subversion 사이트에서 다운로드
받으실 수 있습니다.)
설치가 완료되면 /usr/local/bin/에 실행파일들이 위치합니다. .bash_profile의 PATH에 /usr/local/bin을 추가하시면 터미널에서 사용이 편리합니다.
2. 프로젝트에 Subversion 적용
저는 Test란 프로젝트에 적용해 보겠습니다. 프로젝트명, 위치등은 각자 환경에 맞게 변경하여 작업하시면 됩니다. 우선 아래와 같이 저장소 디렉토리 svn_test를 생성합니다.
프로젝트를 가져오기 위하여 아래와 같이 tmp라는 임시폴더와 그 아래 trunk, branches, tags 디렉토리를 각각 생성합니다. 그 후에 cp 명령으로 적용시킬 프로젝트를 임시 디렉토리로 복사합니다.
[프로젝트 디렉토리]는 가져 올 프로젝트가 위치한 경로 입니다.
> mkdir tmp/Test
> cd tmp/Test
> mkdir trunk
> mkdir branches
> mkdir tags
> cp -r [프로젝트 디렉토리] ~/tmp/Test/trunk
이제 svn_test 저장소로 프로젝트를 저장합니다. [계정아이디]는 현재 계정 아이디를 입력하시면 됩니다. 아래의 이미지를 클릭하시면 확대하여 확인하실 수 있습니다.
그 후에 작업할 디렉토리로 프로젝트를 가지고 옵니다. [프로젝트 디렉토리]는 Test 프로젝트를 저장소로 부터 가져 올 디렉토리이며 전 ~/Projects란 디렉토리로 설정하였습니다. 위와 같이 아래의 이미지를 클릭하여 보시면 이해가 빠르실 겁니다.
> /usr/local/bin/svn checkout file:///Users/[계정아이디]/svn_test Test
임시 폴더를 아래와 같이 삭제하고, 확인을 위하여 Xcode를 실행합니다.
> rm -fR Test/
3. Xcode 설정 및 확인
이제 Xcode의 Open메뉴에서 터미널에서 설정하였던 디렉토리의 trunk/[프로젝트명]에서 프로젝트 파일을 가지고 옵니다. 저는 Projects/Test/trunk/Test로 되어 있습니다.
프로젝트 정보창을 열어 Genral 메뉴 하단의 SCM 설정을 아래와 같이 Subversion으로 선택하고
Enable SCM을 체크합니다.
이제 소스코드를 수정하여 봅니다. 확인을 위하여 아래와 같이 기존 소스에 "NSLog..." 라인을 추가하였습니다.
이제 Xcode의 SCM 메뉴에서 Compare With Revision... 을 실행합니다. 비교할 버젼을 선택한 후 [Compare] 버튼을 클릭하시면 이전 버젼과 현재 파일의 차이점을 아래와 같이 확인하실 수 있습니다.
이제 SCM 메뉴의 Commit Changes... 을 클릭하여 현재 상태를 새로 저장합니다. 변경에 대한 간단한 메시지를 작성한 후 [commit] 버튼을 클릭합니다. Get SCM Info를 클릭하시면 아래와 같이 Test.m 파일에 관한 버젼 히스토리를 확인할 수 있습니다.
XCode3 에서 SVN 사용하기
다음의 글은 애플의 Developer Connection 의 Using Subversion with Xcode 3 on Mac OS X Leopard 의 글을 참고하여 작성되었습니다.
모듈을 사용할 것인지 먼저 결정해야 합니다. 여기서는 svnserve 를 사용하여 설정하도록 하겠습니다.
(Apache 의 모듈을 이용한 방식은 위의 링크에서 확인 할 수 있습니다.)
mkdir -p /Library/Subversion/Repository |
(여기서는 HelloWorld 라고 하겠습니다.)
svnadmin create /Library/Subversion/Repository/HelloWorld |
생성합니다.
mkdir -p /tmp/HelloWorld/trunk mkdir -p /tmp/HelloWorld/branches mkdir -p /tmp/HelloWorld/tags |
svn import /tmp/HelloWorld file:///Library/Subversion/Repository/HelloWorld -m "Initial import" |
rm -rf /tmp/HelloWorld |
sudo chown -R root:admin /Library/Subversion/Repository sudo chmod -R ug+rwX,o= /Library/Subversion/Repository |
요구하는 즉시 svnserve 를 시작하게 되므로 따로 데몬 형태로 svnserve 를 실행할 필요가 없습니다.
그러므로 저장소가 정해진 장소에 있고 sshd 가 서버에서 실행중이라면, svnserve 는 항상 연결을
받을 수 있게 됩니다.
아래와 같은 설정창이 나타나는데 아래와 같이 입력 합니다.
URL 을 입력하면 Scheme, Host, Path 가 자동으로 입력됩니다.
- Xcode 의 메뉴에서 "SCM > Repositories" 를 선택합니다.
- 저장소 브라우저가 열리면, 저장소 이름(여기서는 HelloWorld)를 선택하고 "trunk" 디렉토리를
선택합니다. - 저장소 브라우저 툴바의 "Import" 아이콘을 클릭합니다.
- 그리고 새로 열린 탐색 창에서 HelloWorld 프로젝트 디렉토리를 선택하고
(저의 경우는 "/Users/likejy/code/workspaceXcode/HelloWorld" 디렉토리를 선택하였습니다.) 하단의 "Import" 버튼을 클릭합니다.
저장소에서 해당 프로젝트를 체크아웃 해오면 디스크에 작업 디렉토리 사본이 생기게 됩니다.
따라서 SCM 에서 체크아웃 하기 전에 먼저 생성되어 있던 디렉토리를 삭제하세요.
저의 경우는 위의 "/Users/likejy/code/workspaceXcode/HelloWorld" 디렉토리를 삭제하였습니다.
(중요한 프로젝트 였다면, 혹시 모르니 다른 이름으로 디렉토리명을 변경하거나 백업해 두시길 바랍니다.)
- Xcode 의 메뉴에서 "SCM > Repositories" 를 선택합니다.
- 저장소 브라우저가 열리면, "HelloWorld > trunk > HelloWorld" 를 디렉토리를 선택합니다.
- 브라우저 툴바의 "Checkout" 아이콘을 클릭하면 CheckOut 을 해올 디렉토리를 선택하게 됩니다. 원문에 서는 서브버전을 이용해서 버전관리를 하는 프로젝트의 경우 별도의 디렉토리에 저장하라고 하지만, 저의 경우는 원래 디렉토리가 위치해 둔 디렉토리 "/Users/likejy/code/workspaceXcode 를 선택하였습니다.
- 다시한번 하단의 "Checkout" 버튼을 클릭하고 성공적으로 완료되었다면, 아래와 같이 다시한번 창이 뜨게 됩니다. "Open HelloWorld.xcodeproj" 버튼을 클릭합니다.
아래와 같이 화면 하단에 SCM 저장소를 선택하는 부분이 "None" 으로 되어 있을 것입니다.
이것을 "HelloWorld (Subversion) - Recommended" 로 선택합니다.
그리고 아래와 같이 ctrl 을 누른채 마우스를 클릭하여 "SCM" 을 선택합니다.
이제 해당 프로젝트내의 파일을 수정하게 되면, 별도의 SCM 칼럼에 저장소의 파일과 다르게 변경되었다는 표시가 나타나게 됩니다.
'IT_Programming > Dev Tools' 카테고리의 다른 글
[Eclipse] 콘솔창 라인 수 늘리기 (0) | 2011.06.14 |
---|---|
XCode 4 with SQLCipher 1.1.8 (0) | 2011.06.07 |
[XCode] XCode Debug (0) | 2011.06.07 |
Eclipse 에서 메모리 Heap 상태 체크 및 GC 하기 (0) | 2011.05.18 |
[Eclipse WTP] Web Browser 설정 (0) | 2011.05.18 |