언리얼 리비전 컨트롤(Unreal Revision Control, URC)의 스냅샷 히스토리(Snapshot History) 탭에는 프로젝트 시작 시점부터 제출된 모든 스냅샷이 나열되어 있습니다. 이 탭을 통해 중요한 스냅샷 정보와 에셋 충돌을 빠르게 찾고, 스냅샷을 날짜별로 필터링할 수 있습니다.
최신 동기화(Sync Latest)를 누르면, 발견된 충돌로 인해 충돌 변경 팝업 메시지가 나타납니다. 충돌 해결(Conflict Resolution) 탭을 열면 어떤 에셋이 충돌하는지 확인하고 뷰포트 또는 연관된 에셋 에디터에서 적용된 모든 에셋 변경사항을 확인할 수 있습니다.
에셋 변경사항을 검토한 후 충돌 해결 탭에서 어떤 변경사항을 프로젝트의 현재 상태로 사용할지 선택할 수 있습니다. 이를 통해 충돌하는 에셋 문제를 손쉽게 해결하고 프로젝트 상태에 대한 새 스냅샷을 생성할 수 있습니다.
이러한 기능은 프로젝트 블로커의 수를 줄이고, 팀원들이 개별적으로 충돌을 해결할 수 있도록 합니다. 충돌을 해결하면 스냅샷 히스토리 탭에 새 스냅샷이 생기며, 팀원들은 이 탭에서 모든 스냅샷과 해결된 충돌을 볼 수 있습니다.
스냅샷 히스토리 탭
리비전 컨트롤(Revision Control) > 스냅샷 히스토리 보기(View Snapshot History)를 선택하여 스냅샷 히스토리 탭을 엽니다.
스냅샷을 더블클릭하거나 확장 아이콘을 클릭하여 스냅샷 디테일을 엽니다. 여기에서 에셋과 에셋의 상태, 변경 날짜 및 시간을 볼 수 있습니다.
스냅샷 히스토리 탭이 열린 상태로 작업할 수 있습니다. 탭 상단에서 변경사항을 체크인하고, 최신 스냅샷으로 동기화하고, 특정 타임 스탬프로 스냅샷을 필터링할 수 있습니다.
프로젝트에 에셋과 액터를 추가하면 변경사항 체크인(Check in Changes) 버튼이 강조 표시됩니다. 버튼을 클릭하여 새 스냅샷을 제출합니다. 새 스냅샷이 스냅샷 히스토리 목록 상단에 추가됩니다.
되감기 아이콘을 클릭하여 이전 스냅샷을 봅니다.
최신 버전으로 동기화한 후 스냅샷 히스토리 탭에서도 충돌하는 에셋을 찾을 수 있습니다. 목록 내 충돌은 스냅샷 내 충돌 수와 충돌 아이콘과 함께 표시됩니다.
목록 우측의 충돌을 클릭하여 충돌하는 에셋을 볼 수 있습니다.
스냅샷 되감기
스냅샷 되감기(Rewind Snapshot) 기능을 사용하면 이전 스냅샷으로 돌아가 스냅샷 히스토리의 이전 지점에서 작업을 계속할 수 있습니다. 이전 스냅샷 이후 적용한 변경사항이 만족스럽지 않다면 이전 스냅샷으로 돌아가세요.
스냅샷을 되감으면 스냅샷 히스토리에서 선택한 지점으로부터 현재 스냅샷까지의 모든 변경사항을 무시합니다.
다음 단계를 따라 스냅샷 되감기를 할 수 있습니다.
스냅샷 히스토리에서 스냅샷을 선택하고 되감기 아이콘을 클릭합니다. 스냅샷 히스토리 탭과 하단 툴바에 최신으로 복원(Restore as Latest) 신규 버튼 옵션이 나타납니다.
최신으로 복원(Restore as Latest) 버튼을 클릭합니다. 최신으로 복원 창이 열립니다.
이전 스냅샷으로 돌아가려는 이유를 설명하고 교체될 스냅샷 설명을 입력합니다.
창 하단에서 최신으로 복원 버튼을 클릭합니다.
스냅샷 히스토리에서 선택한 지점과 현재 작업 중인 스냅샷 사이의 스냅샷이 비활성화되고, 무시된 스냅샷 옆에 점선이 나타납니다.
비활성화된 스냅샷으로 되돌림으로써 스냅샷 히스토리 타임라인에서 무시한 스냅샷으로 간단히 동기화할 수 있습니다.
에셋 수준 액션
에셋 수준 액션으로 스냅샷 히스토리에서 에셋을 편집할 수 있습니다. 스냅샷 내에서 에셋이 보이도록 스냅샷을 확장하세요. 스냅샷 목록의 에셋 위에 마우스 커서를 올리면 에셋 수준 편집 툴이 표시됩니다. 편집 아이콘을 클릭하여 툴을 사용할 수 있습니다.
툴은 다음과 같이 각각의 용도가 다릅니다.
스냅샷 중심 편집
콘텐츠 브라우저에서 에셋 열기
에셋 종속성 보기
스냅샷 편집
스냅샷 편집은 에셋 수준에서 이루어질 수 있습니다. 에셋의 스냅샷 편집에는 다음 두 가지 옵션이 있습니다.
스냅샷 [번호]에 동기화
현재 스냅샷에서 보기
'스냅샷 [번호]에 동기화'는 에셋을 해당 스냅샷에 동기화하는 것을 의미합니다. '현재 스냅샷에서 보기'를 통해 해당 스냅샷 수준에서 뷰포트 내 에셋을 볼 수 있습니다. 목록에서 선택하려면 편집 아이콘을 클릭한 다음, 원하는 항목을 클릭합니다.
콘텐츠 브라우저 열기
콘텐츠 브라우저에서 찾을 에셋을 선택하면 해당 에셋이 미리 선택된 상태로 콘텐츠 브라우저가 열립니다.
종속성 보기
일부 에셋에는 다른 에셋에 대한 변경사항을 실행 취소할 수 있는 종속성이 있습니다. 이 뷰를 통해 에셋을 오래된 스냅샷에 동기화하거나 해당 스냅샷의 에셋에 변경사항을 적용하기에 앞서 모든 종속성을 확인하여 정보를 바탕으로 결정을 내릴 수 있습니다.
링크 아이콘을 선택하여 종속성 뷰어를 열고 에셋의 모든 종속성을 검토합니다.
충돌 해결
충돌을 해결하는 것은 충돌 해결 탭에서만 가능합니다. 이 탭은 충돌 상태의 에셋이 있을 때만 나타납니다. 충돌 해결 탭에서 해결할 수 있는 충돌의 타입으로는 4가지가 있습니다.
연결이 끊겨 오프라인 상태에서 에셋 작업을 한 후에 적용한 변경사항
자동 체크아웃(Auto Checkout)이 꺼진 상태에서 최신 스냅샷 동기화 없이 또는 변경사항 체크인 없이 에셋 작업을 하여 적용한 변경사항
Windows 탐색기에서 프로젝트 파일에 변경사항을 적용한 경우
2명의 팀원이 같은 Verse 코드로 작업하는 경우
최신 버전으로 동기화(Sync to Latest)를 클릭하면 에셋 충돌이 드러납니다. 에셋이 충돌할 때 프로젝트 파일을 동기화하려고 시도하면 변경사항 충돌(Conflicting Changes) 팝업 메시지가 나타납니다. 팝업 메시지의 충돌 검토(Review Conflicts) 버튼을 클릭하여 충돌 해결을 시작할 수 있습니다.
이렇게 하면 충돌 해결(Conflict Resolution) 탭이 열리며, 이 탭에서는 자신이 변경한 스냅샷을 저장할지, 아니면 동료가 변경한 스냅샷을 저장할지 선택하여 충돌을 해결할 수 있습니다. 탭 목록 상단에서는 내 변경사항 전체(All Mine) 및 타인의 변경사항 전체(All Theirs) 중에서 선택하거나, '내 변경사항 전체' 또는 '타인의 변경사항 전체'에서 유지해야 하는 개별 변경사항을 선택할 수 있습니다.
에셋 충돌은 2개의 섬네일로 나타냅니다. 충돌 목록에서 에셋 변경사항을 선택한 다음, 프리뷰하기 위해 레벨 리로드(Reload level to preview)를 클릭하면 됩니다. 에셋에 적용된 변경사항은 연관된 에셋 에디터나 뷰포트에 나타납니다. 유지할 변경사항을 선택했으면 충돌 해결을 클릭합니다.
각 섬네일의 정보를 자세히 살펴보려면 에셋 이름 옆의 확장 아이콘을 클릭합니다. 그러면 충돌 뷰가 열립니다. 각 섬네일이 보다 상세하게 나와, 각 팀원이 에셋에 적용한 변경사항을 간략히 살펴볼 수 있습니다.
각 섬네일에는 다음과 같은 3개의 아이콘이 있습니다.
포커스 아이콘 - 뷰포트의 에셋을 찾아 에셋에 포커스를 맞춥니다.
폴더 아이콘 - 콘텐츠 브라우저의 폴더 내 에셋을 표시합니다.
링크 아이콘 - 에셋에 적용된 모든 변경사항 및 이 변경사항의 영향을 받은 다른 에셋이 나와 있는 종속성 트리가 표시됩니다.
탭의 에셋 프리뷰 창 하단의 요약 옆에 있는 확장 아이콘을 클릭하여 충돌 디테일(Details) 패널에서 변경사항 요약을 볼 수 있습니다. 이 바로가기를 통해 자신이 적용한 변경사항과 팀원이 적용한 변경사항 간의 차이점을 살펴볼 수 있습니다. 요약에는 변경사항에 대한 다음 정보가 나와 있습니다.
크기
Asset
변경 날짜
스냅샷 설명
스냅샷 ID
자신과 타인의 변경사항 중에서 선택하기
변경사항을 나타내는 섬네일을 선택하고 충돌 해결 탭 하단의 프리뷰하기 위해 레벨 리로드 버튼을 클릭하여 뷰포트에서 팀원의 에셋 변경사항을 확인합니다. 팀원이 에셋에 적용한 변경사항이 뷰포트에 나타납니다.
섬네일의 아이콘을 사용하거나 충돌 디테일 패널을 열어 에셋 변경사항에 대한 자세한 내용을 검토하는 한편, 동료가 에셋에 적용한 변경사항을 살펴볼 수 있습니다.
변경사항을 나타내는 섬네일을 클릭하고 충돌 해결 탭 하단의 프리뷰하기 위해 레벨 리로드 버튼을 클릭하여 변경사항을 확인합니다. 이렇게 하면 뷰포트 내 에셋 변경사항을 나란히 비교할 수 있습니다.
어떤 에셋 변경사항을 승격할지 결정하고, 해당 변경사항을 나타내는 섬네일을 선택한 다음, 탭 하단의 충돌 해결 버튼을 클릭합니다. 스냅샷 설명 창이 열립니다. 충돌 해결 및 승격되는 스냅샷에 대한 간략한 설명을 추가한 다음, 제출(Submit)을 클릭하여 스냅샷 히스토리 목록에 스냅샷을 추가합니다.
Verse에서 자신과 타인의 변경사항 중에서 선택하기
Verse 충돌은 섬네일로 나타나지 않으며, 스냅샷 히스토리 목록에서 찾을 수 없습니다. Visual Studio Code를 열고 먼저 최신 버전으로 동기화하지 않은 상태로 파일에 변경사항을 적용하면, 이전에 동료가 이미 파일에 변경사항을 적용한 경우 충돌 상태가 됩니다.
UEFN 화면 하단의 변경사항 체크인 또는 최신 버전으로 동기화 버튼을 클릭하여 충돌 경고 팝업 메시지를 표시합니다. 충돌 검토 또는 검토 아이콘을 클릭하여 충돌 해결 탭을 엽니다.
충돌 해결 탭의 VS Code에서 해결(Resolve in VS Code) 버튼을 클릭합니다. 충돌하는 Verse 파일이 Visual Studio Code에서 3종 병합 창으로 열립니다. 하나의 변경사항 세트가 왼쪽에 녹색으로, 다른 변경사항은 오른쪽에 보라색으로 표시되며, 파일의 현재 상태는 창 하단에 노란색으로 표시됩니다.
이미지를 클릭하면 확대됩니다.
Verse 파일의 오른쪽과 왼쪽의 변경사항 및 현재 상태에서 오버플로 메뉴를 클릭하면 다양한 옵션이 나타납니다.
왼쪽에서는 왼쪽의 모든 변경사항 수락(Accept All Changes from Left)을 선택하여 왼쪽 Verse 파일의 변경사항을 수락합니다. 오른쪽에서는 오른쪽의 모든 변경사항 수락(Accept All Changes from Right)을 선택하여 오른쪽 Verse 파일의 변경사항을 수락하거나, 하단의 베이스 파일과 왼쪽 또는 오른쪽의 변경사항을 비교합니다. 현재 버전에서는 리셋(Reset)을 선택하여 파일을 리셋할 수 있습니다.
변경사항을 수락할 파일을 선택하여 충돌을 해결하고 파일을 해결된 상태로 만듭니다. 다음으로 충돌 해결 버튼을 클릭하여 프로젝트에 변경사항을 저장합니다. 이후 스냅샷을 생성하고 제출하는 URC 워크플로를 진행합니다.