SVN 소스 컨트롤 사용법

팀 내 다른 사람들과의 애셋 공유를 위한 SVN 구성 방법입니다.

Windows
MacOS
Linux

언리얼 엔진 4 에는 Subversion, 줄여서 SVN 이라는 버전 컨트롤 소프트웨어를 사용하여 프로젝트 작업을 함께 할 수 있도록 해 주는 통합 방식이 내장되어 있습니다. 버전 컨트롤을 통해 팀원끼리 애셋과 코드를 공유할 수 있을 뿐만 아니라, 백업과 변경내역도 제공되어 어떤 파일이든 문제가 생긴 경우 이전 버전으로 되돌릴 수 있습니다.

언리얼 엔진 4 에 Subversion (SVN) 사용하기

Perforce 를 사용할 수 없는 경우, Subversion(SVN)을 사용해도 됩니다. SVN 은 사용자의 데이터 처리 방식에 있어서는 Perforce 와 비슷합니다. UE4 프로젝트에 SVN 소스 컨트롤 서버를 구성하는 방법은 다음과 같습니다.

SVN 서버 구성하기

SVN 서버 구성은 Subversion 명령줄 도구를 사용해도 되지만, 여기서는 편의를 위해 Windows용 VisualSVN 을 사용해서 구성하는 방법을 알아보겠습니다.

Windows용 SVN 은 여기 를 클릭하고 SVN 웹사이트에서 프로그램을 다운로드할 수 있습니다.

로컬 머신에서 SVN 서버 구성하기

  1. SVN 이 설치된 이후, SVN 을 열고 VisualSVN 에서 Repositories 트리 항목에 우클릭 한 다음 Create New Repository 를 선택합니다:

    SC_SVN_Create_New_Repository.png

  2. 확인 창이 뜨면, 지금은 Regular Files System 을 선택합니다.

    SC_SVN_Choose_Regualr_File_System.png

  3. 그리고 저장소 이름을 입력합니다.

    SC_SVN_Repository_Name.png

  4. 다음으로 저장소에 초기 폴더를 추가할 것인지 선택합니다:

    SC_SVN_Initial_Repo_Structure.png

다른 사람들과 C++ 코드 동시 작업을 하려는 경우 Trunk, Branches, Tags 디렉터리를 추가하면 좋습니다. 보기 보안 세팅 역시도 지금 구성 가능합니다. 정확히 어떻게 설정할지 확실치 않은 경우, 기본값으로 놔두고 모든 Subversion 사용자에게 읽기/쓰기 권한을 주시기 바랍니다. 생성된 이후에는, 트리 뷰에 저장소가 보일 것입니다.

로컬 네트워크의 서버

사람들이 협업시 사용할 서버를 로컬 네트워크에 구성할 수 있습니다. 그러기 위해서는, 서버에서 위 방법을 따른 뒤 클라이언트에서 서버의 URL 을 사용하여 접속하면 됩니다.

보안 접속

많은 사용자들은 저장소에 보안 접속을 원합니다. 이런 접속 URL 은 https:// 로 시작되며, 구성시 알아둬야 할 것이 몇 가지 있습니다. HTTPS 를 사용하려면, 클라이언트에서 확실한 서버에 접속중인지 알 수 있도록 서버측에서 신뢰된 인증서 를 제공해야 합니다. VisualSVN 에서 내부 사용자들이 보안 접속에 사용할 수 있는 로컬 인증서를 발행할 수 있습니다. 트리 뷰의 루트에 우클릭 한 다음 Properties 를 선택하고 Certificate 탭으로 이동하면 자세한 내용을 확인할 수 있습니다:

SC_SVN_Certificate.png

참고로 보안 접속을 통해 SVN 서버에 접속하려면, 서버에서 발행된 인증서가 사용자들이 사용하는 것과 같은 이름으로 발행되어 있어야 접속이 가능합니다. 예를 들어 사용자가 https://my-server/svn URL 을 사용하여 서버에 접근하는 경우, 인증서는 "my-server" (에서 따옴표 제외)에 발행되어 있어야 하며, 마찬가지로 사용자가 https://192.168.0.1/svn 처럼 IP 주소를 통해 접속하는 경우, 인증서는 "192.168.0.1" (에서 따옴표 제외)에 발행되어 있어야 합니다.

클라우드 제공사

다양한 클라우드 제공사를 활용하면 원격 SVN 서버 운영 및 협업이 가능합니다. 간단히 SVN Hosting 을 검색해 보면 몇 개 찾을 수 있습니다. 각 호스팅 제공사마다 다르지만, 모두 다 서버 접속에 사용되는 URL, 사용자명, 암호로 끝날 것입니다.

로컬 작업 사본에 체크 아웃

SVN 컨트롤 하에 있는 파일로 작업을 하기 위해서는, 로컬 머신에 있는 파일 관리가 가능하도록 Working Copy (작업 사본) 구성을 해 줘야 합니다. 현재 이 작업은 언리얼 에디터 안에서는 불가능합니다. SVN 명령줄 도구를 통해 가능은 하지만, 여기서는 사용 편의상 Windows용 TortoiseSVN 을 사용하여 작업 사본을 구성하는 방법을 알아보겠습니다.

Windows용 TortoiseSVN 다운로드는 여기 를 클릭한 다음 TortoiseSVN 웹사이트에서 가능합니다.

새 프로젝트를 만들 때 C++ 코드용인지 블루프린트용인지 선택할 수 있습니다. 프로젝트에 C++ 코드를 사용하는 경우, Source/ 디렉터리도 보입니다. 기본적으로는 프로젝트에 다음과 같은 디렉터리가 추가됩니다:

SC_SVN_Added_Filese.png

초록 강조된 폴더와 파일은 디포에 추가됩니다. 노랑 Binaries 폴더는 옵션으로, 팀과의 협업이 필요한지에 따라 다릅니다. 반드시 모든 팀원이 에디터/게임을 직접 컴파일할 필요는 없더라도, 초기 추가 에 포함은 되어 있어야 콘텐츠 제작시 디포에서 버전을 받아오는 것이 가능합니다.

다른 사람이 이미 만든 프로젝트를 편집하려 하는 경우, 다음 부분은 적용되지 않으니 건너뛰어도 됩니다.

작업 사본을 만들려면, (빈 것으로 가정된) 저장소 루트를 체크 아웃 해야합니다. 그 방법은, Windows 탐색기에서 프로젝트에 우클릭 한 다음 SVN Checkout 을 선택하면 됩니다.

SC_SVN_Checkout.png

그런 다음 저장소 URL 과 체크 아웃 위치를 입력합니다 (원치 않은 하위 디렉터리를 만들지는 않는지 확인하세요).

SC_New_Workspace.png

다음 OK 를 클릭하면 숨겨진 .svn 디렉터리가 생성되며, 여기에 SVN 의 작업 사본에 대한 정보가 저장됩니다.

Subversion 에 파일 추가하기

  1. 저장소에 파일을 추가하려면, Windows 탐색기에서 항목을 선택한 다음 우클릭 하고 TortoiseSVN->Add 옵션을 선택하여 추가합니다.

    SC_SVN_Add.png

  2. 그렇게 하면, SVN 은 선택하신 파일을 저장소에 추가할 파일로 마크합니다. 다음, 프로젝트가 들어있는 디렉터리에 우클릭 한 다음 TortoiseSVN->SVN Commit 을 선택합니다.

    SC_SVN_Commit.png

  3. 그러면 디렉터리에 변경/추가 사항이 있는지 검사한 다음, 있으면 Commit 대화창에 표시됩니다.

    SC_SVN_Commit_Message.png

  4. 이제 제출 메시지를 입력한 다음 OK 를 누르면 서버에 추가 사항이 업로드됩니다. 다른 사람에 의해 이미 시작된 프로젝트 작업을 시작하려는 경우, TortoiseSVN 을 사용하여 SVN 에서 최신 리비전을 받아야 합니다. 그러기 위해서는 위의 SVN Checkout 에서 체크아웃 깊이를 Fully Recursive 설정한 상태로 진행해야 합니다. 그러면 로컬 머신에 기존 파일을 전부 다운로드합니다.

언리얼 에디터에서 Subversion 에 접속하기

언리얼 에디터의 우상단 구석에 있는 소스 컨트롤 아이콘을 클릭하면 SVN 서버에 접속할 수 있습니다.

SC_SVN_Connect_From_UE4_1.png

창이 열리면 소스 컨트롤 로그인 대화창에서 제공사로 Subversion 을 선택한 다음 로그인 정보를 입력합니다. 암호 칸은 옵션으로, 매 번 채울 필요는 없습니다. 한 번만 제대로 입력하면, SVN 에서 기억하고 있습니다.

SC_SVN_Connect_From_UE4_2.png

Mac OSX 에서 보안 접속으로 SVN 사용하기

Mac 에서는 암호와 같은 보안 정보 저장 방식이 다르기 때문에, https:// 접속을 통해 에디터에서 서버에 접속할 때 몇 가지 추가 단계를 거쳐야 합니다. 로그에 다음과 같은 에러가 보이면 이 단계를 밟아줘야 합니다:

E175002: Unexpected HTTP status 400 'Bad Request' on '/projectname/'
E175002: Unexpected HTTP status 405 'Method Not Allowed' on '/projectname/'
E215004: Authentication failed and interactive prompting is disabled; see the --force-interactive option
E215004: No more credentials or we tried too many times.

이 문제를 고치려면, 먼저 명령줄을 열고 다음과 같이 입력합니다.

cd [엔진 설치 디렉터리]/Engine/Binaries/ThirdParty/svn/Mac/bin

그러면 (엔진 설치 디렉터리를 제대로 바꿔주면) UE4 에 포함된 SVN 바이너리를 찾을 수 있는 디렉터리로 변경됩니다.

그런 다음 다음과 같이 입력합니다.

svn info --username=me https://example.com/svn/repo

사용자명과 저장소 URL 을 적합하게 변경해 주세요. 그러면 다음과 같이 암호를 물어옵니다:

Authentication realm: 
Password for 'me':

암호를 입력하면 키체인에 저장됩니다. 이제부터는 에디터에서 정상적으로 접속이 가능할 것입니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼