작업 영역 최적화
팀의 코드베이스가 크고 복잡합니까? 성능을 향상하고 네트워크 트래픽을 낮추며 개발 컴퓨터에 필요한 디스크 공간을 줄이기 위해 작업 영역에 필요한 파일만 포함하고 싶습니까?
폴더 이름 최적화
명시적, 암시적, 숨겨진 및 비재귀적 폴더 매핑을 사용하여 작업 영역 최적화
작업 영역을 사용하여 다른 분기 사이에서 작업을 격리 및 관리합니다.
폴더 이름 최적화
아직 분기를 사용하지 않는 경우 서버에서 Main이라는 하위 폴더에 모든 코드를 입력해야 합니다(예: $/TFVCTeamProject/Main/). 그러면 분기가 코드베이스를 관리할 수 있을 만큼 팀의 규모가 충분히 확장될 때까지 기다립니다. 개발 컴퓨터에서 C:\Users\YourName\Source\Workspaces\TFVCTeamProject\Main\SolutionName\과 같이 프로젝트 구조와 일치하는 짧고 이해하기 쉬운 폴더 경로를 사용해야 합니다.
효과적인 폴더 이름에 대한 몇 가지 추가 팁:
모든 폴더, 하위 폴더 및 파일 이름을 짧게 유지하여 작업을 단순화하고 일부 유형의 코드 프로젝트에서 발생할 수 있는 긴 경로 문제가 발생하지 않도록 합니다.
명령줄 작업을 좀 더 쉽게 실행하려면 공백을 사용하지 마십시오.
명시적, 암시적, 숨겨진 및 비재귀적 폴더 매핑을 사용하여 작업 영역 최적화
코드베이스가 크면 작업 영역 폴더 매핑을 최적화하여 시간, 네트워크 대역폭 및 로컬 디스크 공간 등의 낭비를 방지합니다.
폴더를 매핑할 때 코드 트리에서 로컬 빌드를 만드는 데 필요한 파일을 모두 가져오기에 충분한 상위 수준에 있지만 파일을 불필요하게 많이 가져오지 않기에 충분한 하위 수준에 있는 폴더를 선택해야 합니다. 명시적, 암시적, 비재귀적, 숨겨진 폴더 매핑 등 몇 가지 도구를 사용하여 사용 가능한 작업 영역을 좀더 간단하고 빠르게 만들 수도 있습니다.
아래에서 가상의 개발자 Raisa의 작업 영역을 보면 Raisa가 $/SiteApp/을 c:\code\SiteApp\에 간단하게 매핑하지 않은 이유가 궁금할 수 있습니다. 이와 같이 간단한 작업 영역은 $/SiteApp/Main/에 필요한 모든 폴더를 암시적으로 매핑합니다.
이 방식의 주요 문제는 필요하지 않는 파일이 많이 제공될 수도 있으므로 시간 및 리소스가 낭비될 수 있다는 것입니다. 따라서 Raisa는 맞춤형 폴더 매핑을 만듭니다.
Raisa는 사용자 지정된 빌드 프로세스를 개발하지 않으므로 $/SiteApp/BuildProcessTemplates가 필요하지 않습니다. 시간이 지남에 따라 그녀는 코드베이스가 증가할 것이라고 예상하며, 또한 $/SiteApp/Main/에 추가된 모든 새 비트 코드를 자동으로 다운로드하기를 원하지 않습니다. Raisa가 서버에서 최신 파일을 가져올 때 다른 폴더에서 작업하는 팀이 해당 파일을 변경하면 Raisa는 자신에게 필요하지 않은 파일이 업데이트될 때까지 오래 기다려야 할 수 있습니다. 코드를 개발하려면 Raisa에게는 FabrikamFiber 솔루션을 구성하는 모든 코드 프로젝트가 필요합니다. 그녀는 명시적으로 각 코드 프로젝트를 포함하기보다(예를 들어, $/SiteApp/Main/FabrikamFiber/FabrikamFiber.DAL) $/SiteApp/Main/FabrikamFiber/을 매핑하여 필요한 코드 프로젝트에 있는 모든 하위 폴더를 암시적으로 매핑합니다. |
|
Raisa는 $/SiteApp/Main/FabrikamFiber/3DModels 또는 $/SiteApp/Main/FabrikamFiber/Docs에 있는 파일이 필요하지 않으며 에 의해 암시적으로 매핑되기 때문에 자신의 작업 영역에서 이러한 폴더를 제외하기 위해 두 개의 숨김 매핑을 사용합니다. |
|
Raisa 및 팀의 다른 사람들은 기본 라이브러리의 집합을 유지하고 때때로 보강합니다. 그녀는 폴더에 거의 모든 현재 라이브러리를 필요로 하고 라이브러리에 팀을 추가할 필요가 있을 것이라고 예상하므로 $/SiteApp/Main/libraries/Common을 매핑합니다. |
|
Raisa는 큰 폴더 $/SiteApp/Main/libraries/Common/LibraryC의 작은 세그먼트만 필요하기 때문에 숨김으로 매핑한 다음 자신이 필요한 하위 폴더만 명시적으로 매핑합니다$/SiteApp/Main/libraries/Common/LibraryC/Sub-Library1. |
|
Raisa는 LibraryD 바로 안에 있는 파일 중 일부가 필요하지만 크기가 큰 해당 하위 폴더의 내용은 필요가 없기 때문에 비재귀적 매핑을 $/SiteApp/Main/libraries/Specialized/LibraryD/* 폴더에 적용합니다. |
작업 영역을 사용하여 다른 분기 사이에서 작업을 격리 및 관리합니다.
회사가 코드베이스에서 위험 격리 분기를 사용하는 경우 작업 분기마다 별도의 작업 영역을 만듭니다.
예를 들어, Fabrikam Fiber에서 코드베이스와 직원 수가 증가했습니다. 여러 팀 간의 위험을 분리하기 위해 코드베이스를 분기했습니다. Raisa는 자신의 소규모 팀 내에서 작업을 계속하지만 이제 그녀는 지금 그녀가 여러 분기에서 수행하고 있는 작업을 관리하기 위해 몇 가지 작업 영역을 사용합니다.
기능 개발 Extranet 분기에서 그녀는 고객 지향 웹 사이트 개발에 참여하고 작업 수행을 위한 기본 작업 영역을 수정합니다. |
|
통합 및 안정화 그녀는 그녀가 통합하는 동안 코드를 안전화하기 위해 다른 개발자와 테스터와 공동 작업하는 Test 및 Dev 분기에서 작업을 수행할 수 있도록 두 개의 새 작업 영역을 만듭니다. |
Raisa는 세 가지 작업 영역에서 자신의 작업을 관리합니다. 각 작업 영역은 그녀의 개발 컴퓨터의 폴더로 서버에 분기의 폴더를 매핑합니다.
참고
분기 또는 일시 중지(또는 보류)는 동일한 코드베이스에 대해서 다른 작업 활동을 분리하는 기본 방법입니다.하지만 두 가지 방법이 해당 요구를 충족시키지 못할 경우, 두 개 이상의 작업 영역에서 동일한 서버 폴더를 매핑할 수 있습니다.대부분의 경우 이를 수행할 필요가 없습니다.2개 이상의 작업 영역에서 동일한 서버 폴더를 매핑하는 경우 개별적으로 보류 중인 변경 내용이 각 작업 영역에 저장된 동일한 파일에 존재합니다.