퍼포스 통합 FAQ

퍼포스 용어 관련 자주 묻는 질문에 대한 답변과 자세한 사용법입니다.

Windows
MacOS
Linux

이 문서는 Perforce를 Unreal Engine 4와 함께 사용하는 많은 일반적인 방법에 대한 이해 및 관련 용어들을 제공합니다.

병합 과정의 단순화를 돕기 위해 P4V 및 P4Win으로 통합될 수 있는 자동 병합 도구가 창조되었습니다. 이 도구는 여러 지루한 단계 및 이 문서에서 설명한 최상의 처리방법들을 자동화합니다. 더 자세한 정보는 Perforce AutoMerge 페이지를 참고하십시오.

자주 묻는 질문

Perforce에서 통합, 병합 그리고 브랜치는 무엇을 뜻합니까?

이 용어들은 모두 같은 것을 뜻하며 Integrate 명령을 사용하여 성취됩니다. 브랜치 는 대개 새 위치에 새 파일을 만들어내는 통합을 가리킵니다. Merge 는 이전에 브랜치 된 두 파일 간의 통합입니다.

간단히 파일을 복사해서 변경할 수 있는데 왜 이처럼 복잡한 단계들을 모두 거칩니까?

Perforce는 발생한 모든 변경 및 통합에 대한, 검색이 가능하고 도표화 할 수 있는 데이터베이스를 유지합니다. "손으로 하는" 병합은 데이터베이스의 레코드 추적을 단절하며, 코드의 내력을 추적하는 일을 불가능하게 하고, 브랜치를 더 관리하기 어렵게 하며, 그리고 통합이 정확히 이루어졌을 때 여러분과 Peforce를 더욱 더 어렵게 만듭니다. 그 징후는 Perforce가 파일들의 통합을 거부하는 것에서부터 간단한 변경에 대해 터무니없이 어려운 분석에 이르기까지 다양합니다.

단일 변경목록은 어떻게 통합합니까?

통합을 할 때는 P4V를 사용할 것이 강력히 권장됩니다. UI에 처리 과정을 시각화하는 많은 향상이 이루어졌기 때문입니다. 모든 것들이 최종적으로는 기본적인 P4API 호출로 귀착되므로, P4V 및 P4Win이 모두 같은 기능의 세트를 지원합니다.

P4V에서 단일 변경목록을 통합하는 방법은 다음과 같습니다:

  • 활성 작업영역이 통합해 넣을 브랜치를 가지고 있는지 확인하십시오. * 작업 영역에 소스 브랜치가 포함되어 있을 필요는 없습니다.

  • 통합하고자 하는 변경목록을 오른 클릭하여 Integrate using submitted changeslist 'change#'...(제출된 변경목록 '변경#'를 사용하여 통합) 를 선택하십시오. 아래와 같은 대화상자를 볼 수 있어야 합니다:

P4VIntegrate.jpg

  • Choose integration method(통합 방법 선택) 에서, Use branch specification(브랜치 명세 사용) 을 선택한 다음 사용하고자 하는 브랜치를 선택하십시오.

  • 파일을 삭제했거나 다시 추가한 경우에는: 삼각형 아이콘을 클릭함으로써 Advanced options...(고급 옵션) 과 섹션을 클릭하십시오. enable integrations around deleted revisions (삭제된 버전들의 통합을 유효화) 에서 적절한 옵션을 선택하십시오. 대체로 Delete target file when source is deleted (소스가 삭제된 경우 대상 파일 삭제) 를 선택하게 될 것입니다. 자신이 하고 있는 일에 확신이 있지 않은 한 다른 옵션은 선택하지 마십시오!

P4IntegrateAdvancedOptions.JPG

  • 항상 미리보기 버튼을 사용하여 오류가 있는지 확인하십시오. 오류가 있으면 통합을 완료할 수 없습니다. P4V는 이제 통합 오류에 대한 시각적 검사를 지원하고 있습니다. 통합될 수 없는 파일들이 빨강색으로 강조되어 있는, 통합된 모든 파일의 트리뷰를 보게 될 것입니다. 빨강색 화살표를 사용하여 오류들을 하나하나 점검할 수 있습니다. Description 필드는 각 파일이 통합될 수 없는 이유를 정확히 설명해 줍니다. 또한 구식의 평면 뷰 또는 새로운 트리 뷰로 보기 모드를 교체할 수 있습니다. * 오류의 원인을 파악할 수 없다면 누군가의 도움을 구하십시오.

P4VPreview.JPG

  • New 변경목록을 선택하여 기존의 변경이 이 병합과 섞이는 일이 없도록 하십시오.

  • Finish 를 선택하여 변경목록을 새로 만듭니다.

  • 아래의 지시 대로 통합된 파일들을 분석하십시오.

  • 제출하기 전에 모든 것을 철저히 테스트하십시오.

  • 이 안내 문서에서 나중에 언급할 변경목록 설명 지침 을 사용하는 것을 잊지 마십시오.

P4Win에서 단일 변경목록을 통합하는 방법은 다음과 같습니다:

  • Revision History(개정 내력)을 열어 병합하고자 하는 변경목록을 오른 클릭한 다음, Integrate Using|Branchspec...(브랜치 명세를 사용하여 통합) 를 선택하십시오.

  • 목록에서 branchspec을 선택하십시오.

  • 파일을 삭제했거나 다시 추가한 경우에는: Options...|Permit deletes/re-adds 를 선택하십시오. 적절한 deletes only, re-adds only 또는 both 라디오 버튼을 선택하십시오. * 자신이 하고 있는 일에 확신이 있지 않은 한 다른 옵션은 선택하지 마십시오!

  • P4Win에는 미리보기를 위한 시각화 도구가 없으므로, 출력창의 텍스트를 읽어야 합니다. * 여기에 문제가 있을 경우에는 누군가의 도움을 청하십시오.

  • New 변경목록을 선택하여 기존의 변경이 이 병합과 섞이는 일이 없도록 하십시오.

  • Finish 를 클릭하여 새 변경목록을 만듭니다.

  • 아래의 지시 대로 통합된 파일들을 분석하십시오.

  • 제출하기 전에 모든 것을 철저히 테스트하십시오.

  • 이 안내 문서에서 나중에 언급할 변경목록 설명 지침 을 사용하는 것을 잊지 마십시오.

파일을 빠르게 분석하는 가장 안전한 방법은 무엇입니까?

통합된 각각의 파일은 체크인에 앞서 반드시 분석되어야 합니다. 때때로 어려운 불일치들은 원저자의 도움을 필요로 합니다. Perforce는 처리 과정을 편해지도록 그 목록을 줄여주는, 간단한 병합을 자동 분석하는 약간의 옵션을 가지고 있습니다. P4V와 P4Win 모두에서 이 옵션들을 이용할 수 있습니다. 가장 안전한 처리 방법은 다음 순서대로입니다: 1. Safe automatic 분석 - 파일이 지난번의 병합 이래 한 브랜치에서 오직 한 번만 변경된 경우 변경을 자동분석합니다. 이것은 단지 변경된 파일을 복사하는 것이기 때문에 항상 안전합니다. 1. Automatic 분석 - 파일이 두 브랜치 모두에서 변경되었지만 불일치가 없는 경우 변경을 분석합니다. 1. Interactive 분석 - 나머지 파일들은 두 브랜치 모두에서 변경이 불일치하는, 어려운 것들일 것입니다.

* 이러한 경우를 처리하려면 다음과 같은 병합 도구들을 사용해야 합니다:
    * [Araxis Merge](http://www.araxis.com/), 또는
    * P4WinMerge.

P4VResolve_KR.jpg

주석:

  • Safe Automatic 분석은 흔히 대부분의 파일들을 자동으로 처리합니다.

  • 파일을 대화식으로 병합할 경우에는 매우 신중해야 합니다; 필요하면 도움을 구하십시오!

남아있는 것들은 두 브랜치 모드에서 변경된 파일들일 것입니다.

P4V는 변경 및 발견된 불일치의 수를 요약해서 보여주며, 보조 도구 세트를 (open, diff, history, time lapse) 제시합니다.

P4VResolveIndividual.jpg

준비가 다 되면 Run Merge Tool 을 클릭하여 등록된 병합 도구를 실행, 실제적인 병합을 수행하십시오. P4V의 내장 병합 도구는 항상 소스, 베이스, 대상 그리고 병합 결과를 표시하는, 각 변경의 소스가 칼라 코드된 4-방향 창을 가지고 있으므로 이것을 사용할 것을 추천합니다. 많은 다른 도구들 (Araxis 등)은 단지 3개의 창만 표시하기 때문에 병합을 수행함에 따라 베이스 버전이 겹쳐쓰기 됩니다. P4Merge가 사용하는 칼라/아이콘 체계에 대한 상세 내용은 P4Merge Help Viewer를 참고하십시오(병합하는 중에 F1 키를 누름).

P4VMerge.jpg

모든 파일들이 분석되면, 변경을 제출할 수 있습니다.

통합을 끝마쳤을 때 체크인 코멘트에는 어떤 내용을 적어야 합니까?

기술적으로 Perforce가 그 내부의 데이터베이스에서 통합을 추적하기는 하지만, 코멘트에 여러분의 의도를 표시하는 것은 다른 사람들이 이 변경이 다른 브랜치에서 비롯되었다는 것을 이해하는데 도움이 됩니다.

체크인할 때:

  • 여러분은 코드를 통합하고 있으며, 이것이 어떤 범위의 변경목록에서 비롯되는지를 밝히는 문장을 포함하십시오. 한 번의 제출에 하나의 변경목록만을 통합하는 것이 바람직합니다. 하나의 제출에 여러 변경목록들을 서로 얽히게 하는 것은 나중에 병합 관련 문제의 수정을 어렵게 만들 수 있습니다.

  • 여러분이 변경 및 수정해야 했던 내용을 다시 요약하여 모든 사람들의 이해를 돕도록 하십시오. 만일 요약할 것이 아무것도 없다면 원래의 변경목록에서 복사하여 붙여넣으십시오!

통합이 필요한 변경이 여러가지 있습니다. 이것들을 모두 한 번에 통합할 수 있습니까?

제발 그러지 마십시오. 통합된 변경목록을 각각 별도로 제출하는 것이 더 좋습니다. 여러 개의 변경목록을 한 번에 통합하는 것이 가능하기는 하지만, 권장되지는 않습니다. 이는, 특히 같은 파일에 오버랩되는 변경이 있을 경우, 병합 과정을 엄청나게 어렵게 할 수 있습니다. 또한 한 파일을 체크인 없이 한 번 이상 통합하면 문제가 발생할 경우 실행취소를 할 수 없습니다.

병합이 아주 어려워서 분석이 불가능합니다. 그냥 손으로 하면 안됩니까?

그렇더라도 Perforce 데이터베이스에게 변경이 통합되었음을 알리는 통합을 수행해야 합니다. 정상적으로 통합을 수행해야 하지만, 분석 단계에서 "accept yours" 로 해야 합니다. 이것은 로컬 파일들은 변경하지 않지만, Perforce에게 이 파일들이 통합되었다는 것을 알립니다.

그 다음, 체크인 하기 전에, 적절한 파일들을 편집을 위해 다시 열어 새 코드에 필요한 변경을 작성해야 합니다. 이런 식으로 하면 코드라인으로의 변경을 행한 통합을 나타내는 하나의 변경목록을 만들 수 있습니다.

제가 관심을 가지고 있는 변경목록이 제출된 이후 소스 또는 행선지 브랜치 내의 파일에 많은 변경이 있었습니다. 이 변경을 병합해도 괜찮을까요?

일반적으로, 이것은 문제가 없어야 합니다. 소스 브랜치에서 변경이 행해진 이래 파일이 현저하게 변경(또는 삭제!)되었더라도, 위의 지시를 따름으로써, Perforce는 정확하게 여러분이 관심있는 변경들만을 통합합니다. 물론 오래된 변경목록일수록 행선지 브랜치에서 처리할 병합의 불일치가 생길 가능성이 높습니다.

변경목록 대신 파일(또는 파일의 세트)을 통합할 수 있습니까?

정말로 확실한 이유가 있지 않은 한 이것은 권장되지 않습니다. 항상 개별 변경목록을 선택하여 통합하고, 테스트한 다음 제출하는 것으로 통합을 수행해야 합니다. 파일을 직접 통합하면, 소스 브랜치에서 그 파일에 행해진 통합되지 않은 변경을 어떤 것이든 모두 병합하게 됩니다! 이는 대상 브랜치에 원치 않던 변경 또는 존재하지 않는 코드에 종속물을 가진 변경을 끼워넣을 수 있습니다. 정확하게 필요한 변경목록만을 병합함으로써 이런 일을 회피하십시오.

작업이 끝난 후 변경하지 않을 파일들을 귀속시켜야 합니까?

아닙니다. 항상 변경목록으로부터 통합한 모든 파일들을 체크인 해야 합니다. 파일이 변경되지 않더라도, 이를 체크인함으로써 Perforce 데이터베이스가 통합 정보로 업데이트됩니다.

Perforce는 통합 내력을 변경목록 단위가 아니라 파일 단위로 보존합니다. 변경목록을 통합한 다음 일부 파일을 귀속시키면, 일부 변경목록들은 부분적으로만 통합된 것으로 기록되기 때문에 데이터베이스의 분석을 더 어렵게 만듭니다.

변경목록을 통합하지 않는 것으로 결정했습니다. 무엇을 해야 합니까?

이는 NULL Merge 라는 것으로 알려져 있습니다. 제출하는 변경이 절대 다른 브랜치에서는 필요하지 않을 것으로 확신한다면, 어쨌든 NULL 병합을 수행하는 것이 흔히 도움이 됩니다. NULL 병합을 수행하려면 파일들을 통합하고 "accept yours" 를 선택하여 분석합니다. 그러면 특정 변경이 이미 누군가에 의해 검토되었으며 아무것도 행해지지 않았다는 공식 기록이 만들어집니다. 이 변경은 해당 브랜치에서 통합을 위해 계류중인 변경들의 목록에 포함되지 않게 되므로, 브랜치 관리자들의 처리과정을 간소화 해줍니다.

이 과정이 필요한지의 여부는 코드라인의 방침 및 통합이 관리되는 방법에 달려 있습니다. 따라서 해당 코드라인의 관리자에게 여러분의 변경을 위해 이 과정이 행해져야할지를 확인해야 합니다.

NULL 병합을 수행할 때는, 체크인의 설명에서 변경목록의 번호와 이것이 NULL 통합이라는 사실을 언급하여 나중에 통합기록이 분석될 때 혼동이 없도록 해야 합니다.

브랜치가 설정된 것과 반대 방향으로 통합하려면 어떻게 합니까?

Branchspec은 변경의 정상적인 흐름이 기본 방향이 되도록 설정되어야 합니다. 대개 반대방향으로의 통합은 브랜치들을 병합하여 폐기하는 시점에서 행해집니다.

Perforce 는 통합 중에 branchspec을 "거꾸로 뒤집는" 것을 지원합니다:

  • P4V에서 Select branch specification 섹션에 있는 초록색 화살표를 클릭하면 됩니다. 통합 아이템스크린샷 을 참고하십시오. * 잊어버린 경우에 대비해서 텍스트로도 표시되어 있습니다. :)

  • P4Win는 역전 요청을 자동 감지하는듯 합니다. * 같은 branchspec을 사용해서 변경목록을 통합하면, 매핑을 전도해야 한다는 것을 자동적으로 판단합니다.

대상 브랜치에 존재하지 않는 파일들을 사용해 변경을 통합하려고 합니다. 어떻게 해야 합니까?

이 파일들을 통합에서 제외하도록 branchspec이 업데이트 되어야 합니다. branchspec의 소유주와 상의해서 이 파일들의 매핑을 해제하도록 하십시오.

이러한 일이 있을 경우 Perforce는 대개 다음 두 가지 중 하나를 하게 됩니다: 1. d 또는 -dt 플래그가 없는 통합은 수행할 수 없다는 경고를 내보냅니다. 1. 통합을 수행하고 새 파일들의 브랜치를 시도합니다.

* 통합을 강제하기 위해 -d를 추가하고 체크인 하기 전에 그 파일들을 반전할 수는 있지만, 이는 다음 두 가지 이유에서 사용하지 않을 것이 강력히 권유됩니다 :
    1. 이는 오류를 일으키기 쉽습니다. 문제가 발견된 다음 branchspec을 수정할 때는 여러분이나 다음에 이 작업을 하는 사람들이 잘못해서 이 파일들을 (다시)추가하는 일이 없도록 확실히 해두어야 합니다.    
    1. 이는Perforce의 통합 데이터베이스에서 잘 처리되지 않습니다. Perforce는 항상 변경목록에 통합될 필요가 있는 파일들이 아직 남아있다고 생각하기 때문입니다.

예를 들어, Delta-To-Main 브랜치는(Gears PC) 오직 Delta만 필요한 WarGame 폴더를 가지고 있으며, WareGame이 Main에서 제거되었습니다. WarGame에 있는 파일이 포함되는 변경의 통합을 시도할 때, Perforce는 "삭제된 버전들"을 통합하기 위해서는 -d 또는 -dt 옵션이 필요하다고 불평할 것입니다. 이를 수정하기 위해서는 Delta-To-Main의 branchspec에서 WarGame을 제거해야 Perforce가 더 이상 이 파일들의 통합을 시도하지 않을 것입니다.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback