uVersion
한국어
다운로드 →

Wiki

기존 프로젝트 업로드하기

이미 디스크에 있는 Unreal 프로젝트를 uVersion으로 관리하기: 폴더를 제자리에서 초기화하고, 제외 설정을 확인한 뒤 Pending 탭에서 체크인합니다. 첫 업로드의 함정도 함께 다룹니다.

디스크에 Unreal 프로젝트가 있고 이를 uVersion으로 관리하고 싶은 경우입니다. 이 페이지는 바로 그 경우를 다룹니다. 파일은 이동하지 않습니다. 폴더는 제자리에서 서버에 연결된 다음 업로드됩니다.

반대로 서버에 이미 만들어 둔 빈 저장소에서 시작한다면, 필요한 것은 클론이지 이 페이지가 아닙니다.

시작하기 전에

Unreal 에디터를 닫으세요 업로드가 끝나면 업로드된 파일은 디스크에서 다시 읽기 전용이 됩니다. 그런데 uVersion 플러그인은 에디터를 열 때, 수정 가능한 상태로 남아 있는 모든 에셋을 자동으로 예약합니다. 작업 중에 에디터가 열려 있으면, 방금 업로드한 것에 대해 즉시 다시 잠금을 가져갑니다. 잠금은 스스로 만료되는 일이 없으므로, 모르는 사이에 계속 잠금을 쥐고 있게 됩니다.

선언하려는 폴더가 저장소의 의도한 루트인지도 확인하세요. .uproject 파일은 그 루트로부터 최대 세 단계 아래에 있어야 합니다. 그렇지 않으면 클라이언트는 그 프로젝트를 Unreal 프로젝트로 인식하지 못하고 Unreal 패널은 보이지 않는 상태로 남습니다.

폴더 초기화하기

1. Open Repository 창 열기

사이드바에서 Workspace를 연 다음 Open Repository (또는 탭 바의 "+")를 클릭합니다. 열리는 창은 먼저 기존 저장소를 클론하기 위한 것입니다. 여기서 원하는 것은 아닙니다. 맨 아래까지 스크롤하여 저장소 목록과 Open Local Repository... 아래에 있는 New Repository from a Project Folder...를 클릭합니다.

이 버튼이 보이지 않나요? 이 버튼은 서버에 저장소를 만들기 때문에 admin 역할에만 표시됩니다. 저장소 만들기를 참고하세요.
Open Repository 창의 아래쪽: Download files after clone 체크박스, Open Local Repository 버튼, 그 아래 New Repository from a Project Folder 버튼.

2. 프로젝트 루트 선택하기

Select your project folder to create a new repository라는 제목의 폴더 선택기가 열립니다. 프로젝트의 루트, 즉 .uproject를 담고 있는 폴더 또는 그것을 담고 있는 폴더를 선택합니다. 아무것도 복사하거나 이동하지 않습니다. 이 폴더는 지금 있는 자리에 그대로 있습니다.

3. 저장소 이름을 짓고 만들기

양식은 새 대화 상자가 아니라 방금 클릭한 버튼 자리인 창 자체 안에 표시됩니다. 선택한 경로를 다시 보여 주고 폴더 이름으로 미리 채워진 Repository name 필드를 제공합니다. 필요하면 조정한 뒤 Create & Open을 클릭합니다. 이름이 비어 있는 동안 버튼은 비활성 상태이며, 이 이름은 서버 전체에서 고유해야 합니다.

Open Repository 창 안의 제자리 생성 양식: 선택한 폴더 경로가 한 줄, 폴더 이름으로 미리 채워진 Repository name 필드, Create and Open 버튼과 Cancel 버튼.

그러면 클라이언트는 네 가지를 하고 그 밖에는 아무것도 하지 않습니다.

  • 서버에 저장소를 만듭니다.
  • 프로젝트 안에 .uversion/ 폴더를 씁니다. 여기에는 저장소, 서버 주소, 그리고 워크스페이스의 소유자 계정이 기록됩니다.
  • .uversionignore 파일을 씁니다. 이미 존재하는 경우에만 쓰지 않습니다.
  • 아무것도 다운로드하지 않으며 여러분의 파일에는 전혀 손대지 않습니다.
이 폴더는 여러분의 것이 됩니다 폴더를 초기화한 계정이 그 소유자가 되며, 이 폴더 안에서 명령줄이 이후 동작하는 것은 이 정체성 아래에서입니다. 동료는 여러분의 폴더를 복사하면 안 됩니다. 자기 쪽에서 저장소를 클론해야 하며, 그렇지 않으면 This workspace belongs to ...라는 메시지를 받게 됩니다.

제외 설정 확인하기

지금이 알맞은 시점이고, 나중보다 훨씬 간단합니다. 루트에 있는 .uversionignore 파일을 여세요. 결코 업로드되지 않을 것들이 나열되어 있습니다. 기본 템플릿은 Unreal 프로젝트가 스스로 다시 생성하는 것, 특히 Binaries/, Build/, DerivedDataCache/, Intermediate/, Saved/, Packages/, 그리고 개발 환경의 프로젝트 파일을 이미 제외합니다.

바꿀 수 없는 규칙이 두 개 있으며, 알아 두는 편이 좋습니다.

  • Plugins/uVersion항상 제외됩니다. Unreal 플러그인은 결코 버전 관리되지 않습니다. 각 컴퓨터는 자신의 엔진에 맞는 버전을 데스크톱 클라이언트를 통해 설치합니다. 저장소에 없는 것이 정상입니다.
  • 정확히 ThirdParty라는 이름의 폴더를 포함하는 경로는 어떤 규칙을 쓰더라도 결코 제외되지 않습니다. 따라서 서드파티 라이브러리는 항상 올라갑니다.

Packages/가 제외되므로 패키징된 빌드는 결코 저장소에 들어가지 않습니다. 빌드는 버전 관리가 아니라 빌드 게시 기능으로 배포됩니다.

업로드하기

4. Files 탭에서 상태 확인하기

프로젝트 전체가 untracked 상태로 표시됩니다. 내 쪽에는 있지만 아직 서버에는 없는 상태입니다. 방금 초기화된 폴더의 정상적인 상태입니다. 트리 위의 카운트 배지도 같은 것(N local only)을 요약하고, Rev 열은 어디서나 v0을 나타내며, Pending 탭에는 이미 같은 숫자의 배지가 붙어 있습니다. 클라이언트가 스스로 파일을 찾아냈으므로 손으로 "추가"할 것은 아무것도 없습니다.

초기화 직후의 Files 탭: 트리 위의 N local only 배지, 각 행의 untracked 상태, v0인 Rev 열, 그리고 Pending 탭의 같은 숫자 배지.

5. Pending 탭 열기

모든 파일이 이미 거기에 있고, add로 표시되어 Default 체인지리스트에 정리되어 있습니다. 왼쪽 열은 올라갈 것의 트리 구조를, 오른쪽 패널은 행마다 DiffRemove가 있는 평면 목록을 보여 줍니다. 여기서는 결코 버전 관리하고 싶지 않은 것만 제거하세요. "이 폴더는 여기 있을 이유가 없다"에 대한 올바른 답은 .uversionignore의 규칙이지, 한 줄씩의 Remove가 아닙니다.

첫 업로드 시의 Pending 탭: 왼쪽에 파일 트리, 오른쪽에 각 파일이 add로 표시된 Default 체인지리스트, 행마다 Diff와 Remove 버튼, Describe your changes 영역, 그리고 Checkin all 버튼.

6. 설명한 뒤 Checkin all

Describe your changes...에 메시지를 쓰세요. 필수이며, 영역이 비어 있는 동안 Checkin all 버튼은 비활성 상태입니다. "프로젝트 첫 업로드"면 충분합니다. 그런 다음 Checkin all (N)을 클릭합니다.

Default 체인지리스트 패널: 첫 업로드 메시지가 채워진 Describe your changes 영역, 파일 수와 함께 활성화된 Checkin all 버튼.
업로드는 여러분을 위해 예약합니다 체크인은 업로드하는 파일의 잠금을 스스로 걸었다가, 리비전이 검증되면 해제합니다. 첫 업로드에서는 영향이 없습니다. 그 파일에는 여러분 혼자입니다. 이미 공유된 저장소에서는 다른 누군가가 예약한 파일이 있으면 업로드가 실패합니다. 아래의 함정을 참고하세요.

이후 업로드는 스스로 진행되며, 헤더 바에 여러 단계가 표시됩니다. 청킹, 서버가 이미 가진 것의 확인, 전송, 그리고 검증입니다. 그동안 탭을 바꿔도 됩니다. 진행 상황은 따라옵니다. 중단된 전송은 전부 다시 시작하는 대신 멈춘 지점부터 재개됩니다. 마지막으로 업로드된 파일은 읽기 전용이 됩니다. 이는 그것이 서버에 있으며, 수정하려면 예약해야 한다는 표시입니다.

첫 업로드의 함정

Files에서 업로드 버튼을 찾고 있어요

거기에는 없습니다. Files 탭은 상태를 보여 주고 단발성 작업에 쓰입니다. 업로드는 Pending 탭에서 이루어지며, 거기에는 모든 미추적 또는 수정된 파일이 저절로 나타납니다. Pending에 배지가 표시되면 업로드할 것이 있다는 뜻입니다.

"Failed to acquire locks for N file(s)"

하나 이상의 파일이 이미 다른 누군가에게 예약되어 있으며, 해당 파일만이 아니라 업로드 전체가 취소됩니다. 대기 중인 예약 탭을 보고 누가 쥐고 있는지 확인한 뒤, 그 사람에게 해제를 요청하세요.

선택한 파일이 삭제로 올라갔어요

업로드되었지만 전송 시점에 디스크에 없는 경로는 삭제로 해석됩니다. 이는 선택과 업로드 사이에 파일을 옮기거나 이름을 바꾼 경우에 일어납니다. 작업 중에는 폴더 안에서 작업하지 마세요.

"This folder is already a uVersion repository"

폴더에 이미 .uversion/이 들어 있습니다. 다시 만드는 대신 Open Local Repository...를 사용하세요.

폴더가 거부됩니다

클라이언트는 특정 위치를 의도적으로 거부합니다. 디스크의 루트, 시스템 폴더, 자동 시작 폴더, 또는 상대 경로입니다. 평범한 작업 폴더를 선택하세요.

그다음은