Wiki
기존 프로젝트 업로드하기
이미 디스크에 있는 Unreal 프로젝트를 uVersion으로 관리하기: 폴더를 제자리에서 초기화하고, 제외 설정을 확인한 뒤 Pending 탭에서 체크인합니다. 첫 업로드의 함정도 함께 다룹니다.
디스크에 Unreal 프로젝트가 있고 이를 uVersion으로 관리하고 싶은 경우입니다. 이 페이지는 바로 그 경우를 다룹니다. 파일은 이동하지 않습니다. 폴더는 제자리에서 서버에 연결된 다음 업로드됩니다.
반대로 서버에 이미 만들어 둔 빈 저장소에서 시작한다면, 필요한 것은 클론이지 이 페이지가 아닙니다.
시작하기 전에
선언하려는 폴더가 저장소의 의도한 루트인지도 확인하세요.
.uproject 파일은 그 루트로부터 최대 세 단계 아래에 있어야 합니다.
그렇지 않으면 클라이언트는 그 프로젝트를 Unreal 프로젝트로 인식하지 못하고
Unreal 패널은 보이지 않는 상태로 남습니다.
폴더 초기화하기
1. Open Repository 창 열기
사이드바에서 Workspace를 연 다음 Open Repository (또는 탭 바의 "+")를 클릭합니다. 열리는 창은 먼저 기존 저장소를 클론하기 위한 것입니다. 여기서 원하는 것은 아닙니다. 맨 아래까지 스크롤하여 저장소 목록과 Open Local Repository... 아래에 있는 New Repository from a Project Folder...를 클릭합니다.
admin 역할에만 표시됩니다.
저장소 만들기를 참고하세요.
2. 프로젝트 루트 선택하기
Select your project folder to create a new repository라는 제목의
폴더 선택기가 열립니다. 프로젝트의 루트, 즉 .uproject를 담고 있는
폴더 또는 그것을 담고 있는 폴더를 선택합니다. 아무것도 복사하거나 이동하지
않습니다. 이 폴더는 지금 있는 자리에 그대로 있습니다.
3. 저장소 이름을 짓고 만들기
양식은 새 대화 상자가 아니라 방금 클릭한 버튼 자리인 창 자체 안에 표시됩니다. 선택한 경로를 다시 보여 주고 폴더 이름으로 미리 채워진 Repository name 필드를 제공합니다. 필요하면 조정한 뒤 Create & Open을 클릭합니다. 이름이 비어 있는 동안 버튼은 비활성 상태이며, 이 이름은 서버 전체에서 고유해야 합니다.
그러면 클라이언트는 네 가지를 하고 그 밖에는 아무것도 하지 않습니다.
- 서버에 저장소를 만듭니다.
-
프로젝트 안에
.uversion/폴더를 씁니다. 여기에는 저장소, 서버 주소, 그리고 워크스페이스의 소유자 계정이 기록됩니다. -
.uversionignore파일을 씁니다. 이미 존재하는 경우에만 쓰지 않습니다. - 아무것도 다운로드하지 않으며 여러분의 파일에는 전혀 손대지 않습니다.
제외 설정 확인하기
지금이 알맞은 시점이고, 나중보다 훨씬 간단합니다. 루트에 있는
.uversionignore 파일을 여세요. 결코 업로드되지 않을 것들이
나열되어 있습니다. 기본 템플릿은 Unreal 프로젝트가 스스로 다시 생성하는 것,
특히 Binaries/, Build/,
DerivedDataCache/, Intermediate/,
Saved/, Packages/, 그리고 개발 환경의 프로젝트 파일을
이미 제외합니다.
바꿀 수 없는 규칙이 두 개 있으며, 알아 두는 편이 좋습니다.
-
Plugins/uVersion은 항상 제외됩니다. Unreal 플러그인은 결코 버전 관리되지 않습니다. 각 컴퓨터는 자신의 엔진에 맞는 버전을 데스크톱 클라이언트를 통해 설치합니다. 저장소에 없는 것이 정상입니다. -
정확히
ThirdParty라는 이름의 폴더를 포함하는 경로는 어떤 규칙을 쓰더라도 결코 제외되지 않습니다. 따라서 서드파티 라이브러리는 항상 올라갑니다.
Packages/가 제외되므로 패키징된 빌드는 결코 저장소에 들어가지
않습니다. 빌드는 버전 관리가 아니라 빌드 게시 기능으로 배포됩니다.
업로드하기
4. Files 탭에서 상태 확인하기
프로젝트 전체가 untracked 상태로 표시됩니다. 내 쪽에는 있지만 아직 서버에는 없는 상태입니다. 방금 초기화된 폴더의 정상적인 상태입니다. 트리 위의 카운트 배지도 같은 것(N local only)을 요약하고, Rev 열은 어디서나 v0을 나타내며, Pending 탭에는 이미 같은 숫자의 배지가 붙어 있습니다. 클라이언트가 스스로 파일을 찾아냈으므로 손으로 "추가"할 것은 아무것도 없습니다.
5. Pending 탭 열기
모든 파일이 이미 거기에 있고, add로 표시되어
Default 체인지리스트에 정리되어 있습니다. 왼쪽 열은 올라갈 것의
트리 구조를, 오른쪽 패널은 행마다 Diff와 Remove가
있는 평면 목록을 보여 줍니다. 여기서는 결코 버전 관리하고 싶지 않은 것만
제거하세요. "이 폴더는 여기 있을 이유가 없다"에 대한 올바른 답은
.uversionignore의 규칙이지, 한 줄씩의 Remove가 아닙니다.
6. 설명한 뒤 Checkin all
Describe your changes...에 메시지를 쓰세요. 필수이며, 영역이 비어 있는 동안 Checkin all 버튼은 비활성 상태입니다. "프로젝트 첫 업로드"면 충분합니다. 그런 다음 Checkin all (N)을 클릭합니다.
이후 업로드는 스스로 진행되며, 헤더 바에 여러 단계가 표시됩니다. 청킹, 서버가 이미 가진 것의 확인, 전송, 그리고 검증입니다. 그동안 탭을 바꿔도 됩니다. 진행 상황은 따라옵니다. 중단된 전송은 전부 다시 시작하는 대신 멈춘 지점부터 재개됩니다. 마지막으로 업로드된 파일은 읽기 전용이 됩니다. 이는 그것이 서버에 있으며, 수정하려면 예약해야 한다는 표시입니다.
첫 업로드의 함정
Files에서 업로드 버튼을 찾고 있어요
거기에는 없습니다. Files 탭은 상태를 보여 주고 단발성 작업에 쓰입니다. 업로드는 Pending 탭에서 이루어지며, 거기에는 모든 미추적 또는 수정된 파일이 저절로 나타납니다. Pending에 배지가 표시되면 업로드할 것이 있다는 뜻입니다.
"Failed to acquire locks for N file(s)"
하나 이상의 파일이 이미 다른 누군가에게 예약되어 있으며, 해당 파일만이 아니라 업로드 전체가 취소됩니다. 대기 중인 예약 탭을 보고 누가 쥐고 있는지 확인한 뒤, 그 사람에게 해제를 요청하세요.
선택한 파일이 삭제로 올라갔어요
업로드되었지만 전송 시점에 디스크에 없는 경로는 삭제로 해석됩니다. 이는 선택과 업로드 사이에 파일을 옮기거나 이름을 바꾼 경우에 일어납니다. 작업 중에는 폴더 안에서 작업하지 마세요.
"This folder is already a uVersion repository"
폴더에 이미 .uversion/이 들어 있습니다. 다시 만드는 대신
Open Local Repository...를 사용하세요.
폴더가 거부됩니다
클라이언트는 특정 위치를 의도적으로 거부합니다. 디스크의 루트, 시스템 폴더, 자동 시작 폴더, 또는 상대 경로입니다. 평범한 작업 폴더를 선택하세요.