버전 관리(Version Control)
Perforce 통합

버전 관리 통합

Unity는 PerforcePlastic SCM을 통해 버전 관리 통합을 지원합니다. 선택한 버전 관리에 관한 자세한 내용은 해당 페이지를 참조하십시오.

버전 관리 시스템(Version Control System)을 사용하면 단일 또는 여러 사용자가 코드를 더 쉽게 관리할 수 있습니다. 이 시스템은 액세스가 모니터링되는 파일의 저장소로, Unity의 경우 Unity 프로젝트와 관련된 모든 파일이 이에 해당됩니다. 버전 관리를 통해 모든 변경 사항을 처음까지 추적하고 변경 사항을 누가 왜 적용했고 무엇이 변경되었는지도 추적할 수 있습니다. 그러면 이전 버전의 코드로 되돌리거나 버전 간 차이를 쉽게 비교할 수 있습니다. 버그가 처음 발생한 시점과 버그를 초래한 변경 사항도 쉽게 찾을 수 있습니다.

Unity에서 버전 관리 설정

해당하는 지침에 따라 버전 관리 소프트웨어를 설정한 후 다음 단계를 따르십시오.

  1. 선택한 클라이언트를 사용하여 컴퓨터에서 작업 공간을 설정하거나 동기화합니다. 이 단계와 관련된 도움말은 Plastic SCM 통합 가이드Perforce 통합 가이드를 참조하십시오.

  2. 프로젝트를 작업 공간에 복사하거나 Unity를 시작하고 작업 공간에서 새 프로젝트를 생성합니다.

  3. Open the project and go to Edit > Project Settings, then select the Editor category.

  4. 버전 관리(Version Control) 에서 선택한 버전 관리 시스템에 따라 모드(Mode) 를 선택합니다.

  5. 사용자 이름/암호/서버/작업 공간 등 버전 관리 설정을 입력합니다.

  6. 파일이 프로젝트(또는 디스크의 폴더)에 추가될 때 자동으로 버전 관리에 추가되도록 하려면 자동 추가(Automatic add) 를 선택해야 합니다. 아니면 새 파일을 수동으로 추가해야 합니다.

  7. 오프라인에서 작업하기 위한 옵션도 있습니다. 이 모드는 변경 사항을 버전 관리 소프트웨어에 수동으로 다시 통합하는 방법을 아는 사용자에게만 권장됩니다(Perforce를 사용한 오프라인 작업).

  8. 팀의 환경 설정과 선택한 버전 관리에 적합하도록 에셋 직렬화(Asset Serialization), 기본 동작 모드(Default Behaviour Mode)스프라이트 패커(Sprite Packer) 옵션을 편집할 수 있습니다.

  9. 연결(Connect) 을 클릭하고 잠시 후에 연결(Connect) 버튼 위에 “연결됨”이 표시되는지 확인합니다.

  10. 스탠다드 클라이언트(예: p4v)를 사용하여 에셋(Assets)ProjectSettings 폴더에 있는 모든 파일(.meta 로 끝나는 파일 포함)이 추가되는지 확인합니다.

참고: 언제든지 Prefences 메뉴로 이동하고 External Tools 를 선택하여 Revision Control Diff/Merge 툴을 조정할 수 있습니다.

버전 관리 사용

이 시점에는 버전 관리 클라이언트를 통하지 않고 프로젝트 뷰에서 에셋을 마우스 오른쪽 버튼으로 클릭하여 대부분의 중요한 버전 관리 작업을 직접 수행할 수 있어야 합니다. 버전 관리 작업은 선택하는 버전 관리에 따라 다릅니다. 아래 표에는 각 버전 관리별로 직접 수행 가능한 작업이 나와 있습니다.

버전 관리 작업 설명 Perforce Plastic SCM
체크 아웃 파일에 변경 사항 적용 가능 지원 지원
헤드와 차이 비교 로컬 및 헤드 파일 간 차이 비교 지원 지원
최근 버전 가져오기 최근 변경 사항을 가져오고 파일 업데이트 지원 미지원\| |잠금|다른 사용자의 파일 변경 방지|지원|미지원\\| |마크 추가|로컬에서 추가하지만 버전 관리에는 추가하지 않음|지원|지원| |충돌 해결|여러 사용자가 변경한 파일의 충돌 해결|지원|미지원\\\
되돌리기 열린 변경 파일에 적용된 변경 사항 폐기 지원 지원
변경 전으로 되돌리기 변경되지 않은 열린 파일에 적용된 변경 사항 폐기 지원 지원
제출 버전 관리에 파일의 현재 상태 제출 지원 지원
잠금 해제 잠금을 해제하고 누구나 변경할 수 있게 허용 지원 미지원\\

\* Plastic SCM을 사용하여 최근 변경 사항을 가져오고 파일을 업데이트하려면 버전 관리 창을 사용해야 합니다.

\\ Plastic SCM을 사용하여 잠금 설정 및 잠금 해제를 하려면 특정 Plastic SCM 잠금 파일을 외부에서 편집해야 합니다. 자세한 내용은 Plastic SCM 통합 페이지를 참조하십시오.

\\\* 충돌은 버전 관리 메뉴에 표시되지만 Plastic SCM GUI에서 해결됩니다.

Mac의 Plastic SCM 버전 관리 작업
Mac의 Plastic SCM 버전 관리 작업
Windows의 Perforce 버전 관리 작업
Windows의 Perforce 버전 관리 작업

버전 관리 창

Version Control 창(Window > Asset Management > Version Control)에서 변경 리스트에 있는 파일을 살펴볼 수 있습니다. 아래 그림에는 에디터의 인스펙터 옆에 도킹되어 있습니다.

‘Outgoing’ 탭에는 버전 관리에 적용하기 전에 대기 중인 로컬 변경 사항이 모두 나열되는 한편, ‘Incoming’ 탭에는 버전 관리에서 가져와야 하는 모든 변경 사항이 나열됩니다.

이 창에서 에셋이나 변경 리스트를 마우스 오른쪽 버튼으로 클릭하여 해당 작업을 수행합니다. 에셋을 리스트 간에 이동하려면 간단히 에셋을 한 변경 리스트에서 대상 변경 리스트의 헤더로 드래그합니다.

아이콘

다음 아이콘은 Unity 에디터에 표시되어 파일/에셋의 버전 관리 상태를 시각화합니다.

아이콘 의미 추가 정보
로컬에서 추가된 파일 버전 관리에 추가하기 위해 대기 중
다른 사용자가 버전 관리에 추가한 파일 버전 관리에 추가하기 위해 대기 중
사용자가 파일을 체크 아웃함 로컬에서 체크 아웃됨
다른 사용자가 파일을 체크 아웃함 원격으로 체크아웃
이 파일을 병합하는 데 충돌이 발생 해결 필요
사용자가 파일을 삭제함 버전 관리에서 삭제하기 위해 대기 중
다른 사용자가 파일을 삭제함 버전 관리에서 삭제하기 위해 대기 중
파일이 아직 버전 관리되지 않음 해당 없음
사용자가 파일을 잠금 다른 사용자가 수정할 수 없음
다른 사용자가 파일을 잠금 사용자가 수정할 수 없음
다른 사용자가 이 파일의 새 버전을 체크인함 최근 버전을 얻으려면 “Apply Incoming Changes” 이용
서버가 이 파일의 버전 관리 상태를 요청하거나 리스폰스를 기다립니다. Perforce 같은 중앙 집중식 버전 관리 시스템을 사용할 때만 표시됩니다.

참고할 사항:

  • 특정 버전 관리에서는 에셋을 체크 아웃 으로 표시할 때까지 편집할 수 없습니다(Work offline 을 선택한 경우 제외).
  • 변경 사항을 .scene 파일에 저장하면 파일이 자동으로 체크 아웃됩니다.
  • 프로젝트 설정 인스펙터의 오른쪽 하단에는 설정을 체크 아웃하기 위해 사용할 수 있는 Checkout 버튼이 있습니다.
  • 종종 항목을 변경하기 위해서는 체크아웃해야 함을 다시 알리는 노란색 경고가 표시됩니다. 주로 프로젝트 설정 인스펙터에 적용됩니다.
  • Plastic SCM에서 자동으로 생성되는 광원 맵 같은 에셋은 자동으로 추가/체크 아웃됩니다.

제출할 때 변경되지 않은 파일의 자동 되돌리기

에셋을 사용하여 작업할 때 Unity는 에셋 파일과 관련 .meta 파일을 모두 자동으로 체크 아웃합니다. 하지만 대부분의 상황에서는 .meta 파일이 수정되지 않으므로 예를 들어 나중에 브랜치를 병합하는 경우 추가 작업이 어느 정도 발생할 수 있습니다.

오프라인 모드

Unity는 예를 들어 버전 관리 저장소에 네트워크로 연결하지 않고 계속 작업할 수 있는 오프라인 모드 작업을 지원합니다.

  • 버전 관리에 연결하지 않고 작업할 수 있기를 원하는 경우 버전 관리 통합에서 Work offline 을 선택합니다.

비동기 업데이트 허용

Unity는 Perforce 같은 일부 버전 관리 공급자에 대해 비동기 버전 관리 상태 쿼리를 지원합니다. 이 옵션을 사용하면 버전 관리 공급자가 Unity 동작을 지연시키지 않고도 버전 관리 상태를 업데이트할 수 있습니다. 버전 관리 서버에 연결하는 데 긴 지연이 발생하면 이 옵션을 사용하십시오.

  • 상태 쿼리 동안 지연이 발생하면 버전 관리 설정(Version Control Settings) 으로 이동하여 비동기 업데이트 허용(Allow Async Update) 을 선택합니다.

참고: 상태 쿼리만 비동기화됩니다. 파일의 상태를 바꾸거나 최신 파일 상태 정보를 요구하는 작업은 동기식으로 수행됩니다.

문제 해결

예를 들어, 서버 작동 중단 또는 라이선스 문제 등의 이유로 Unity가 변경 사항을 버전 관리 클라이언트에 적용하지 못하는 경우 변경 사항이 별도의 체인지셋에 저장됩니다.

에셋 서버를 사용한 작업

에셋 서버(Unity의 내부 버전 관리 시스템)를 사용한 작업에 대한 자세한 내용은 에셋 서버에 대한 문서를 참조하십시오.

기타 버전 관리 시스템을 사용한 작업

To work with a version control system unsupported by Unity, select MetaData as the Mode for Version Control in the Editor window. This allows you to manage the source Assets and metadata for those Assets with a version control system of your choice. For more on this, see documentation on External Version Control Systems.


  • 2017–02–12 일부 편집 리뷰를 거쳐 페이지 수정됨

  • Unity 2017.3에서 비동기식 버전 관리 상태 쿼리에 대한 문서 추가됨

버전 관리(Version Control)
Perforce 통합