Visual SourceSafe에서 마이그레이션
Team Foundation VSSConverter 명령줄 도구를 사용하여 프로젝트, 파일, 버전 기록, 레이블 및 사용자 정보를 Visual SourceSafe 데이터베이스에서 Team Foundation 버전 제어용 서버로 마이그레이션할 수 있습니다. 이 도구는 Visual Studio Team Foundation Server에 포함됩니다.
Visual SourceSafe에 대한 자세한 내용은 Microsoft 웹 사이트의 Source Control for Visual Studio 페이지를 참조하십시오.
Visual SourceSafe 데이터베이스에서 데이터를 마이그레이션하려면
**주요 개념 이해 **데이터를 Visual SourceSafe 데이터베이스에서 Team Foundation 버전 제어용 서버로 마이그레이션하기 전에 몇 가지 주요 개념을 이해해야 합니다. Team Foundation과 Visual SourceSafe는 기능에 커다란 차이가 있으므로 VSSConverter는 마이그레이션할 때 특정 종류의 데이터를 수정해야 합니다.
자세한 내용은 이 항목의 뒷부분에 나오는 VSSConverter의 데이터 변환 방법을 참조하십시오.
**필요한 사용 권한이 있는지 확인 **이 항목의 절차를 수행하려면 여러 유형의 사용 권한이 필요합니다. 자세한 내용은 이 항목 뒷부분에 나오는 필요한 사용 권한을 참조하십시오.
**마이그레이션 프로세스 계획 및 준비 **마이그레이션 프로세스를 시작하기 전에 계획 및 준비 단계를 수행하여 심각한 문제를 방지할 수 있습니다. 자세한 내용은 이 항목의 뒷부분에 나오는 마이그레이션 프로세스 계획 및 준비를 참조하십시오.
**데이터 분석 **Visual SourceSafe에서 Team Foundation 버전 제어로 데이터를 마이그레이션하기 전에 먼저 Visual SourceSafe 변환기의 분석 기능을 사용하여 데이터의 문제점이 마이그레이션 결과에 영향을 줄지 여부를 확인해야 합니다. 이 프로세스에서 데이터를 마이그레이션하는 데 필요한 사용자 매핑 파일도 생성됩니다. 자세한 내용은 이 항목의 뒷부분에 나오는 데이터 분석을 참조하십시오.
**데이터 마이그레이션 **분석 기능을 실행하면 데이터 마이그레이션 준비가 거의 끝납니다. 데이터를 마이그레이션하려면 사용자 이름의 마이그레이션 방법을 지정하고 마이그레이션 설정 파일을 만든 다음 마이그레이션 명령을 실행해야 합니다. 자세한 내용은 이 항목의 뒷부분에 나오는 데이터 마이그레이션을 참조하십시오.
**마이그레이션 확인 및 문제 해결 **마이그레이션 기능이 완료되면 다음 단계를 수행해야 합니다.
마이그레이션 기능으로 생성된 보고서를 검토합니다.
Team Foundation 버전 제어용 서버의 데이터를 확인하여 Visual SourceSafe 데이터베이스의 데이터가 올바르게 마이그레이션되었는지 확인합니다.
이러한 단계를 수행한 후 문제를 해결해야 할 수도 있습니다. 자세한 내용은 이 항목의 뒷부분에 나오는 마이그레이션 확인 및 문제 해결을 참조하십시오.
필요한 권한
이 항목의 절차를 수행하려면 다음과 같은 사용 권한이 있어야 합니다.
마이그레이션할 데이터가 포함된 Visual SourceSafe 데이터베이스에서 관리자 계정의 암호를 알아야 합니다.
마이그레이션 컴퓨터(Visual Studio가 설치된 컴퓨터)에서 Administrators 그룹의 멤버여야 합니다.
VSSConverter에 사용되는 데이터베이스에서 "데이터베이스 만들기" 권한이 있어야 합니다. 자세한 내용은 이 항목의 뒷부분에 나오는 VSSConverter에서 사용할 데이터베이스 제공을 참조하십시오.
Team Foundation용 응용 프로그램 계층에서 Team Foundation Administrators 보안 그룹의 멤버여야 합니다. 자세한 내용은 Team Foundation Server 권한을 참조하십시오.
마이그레이션 프로세스 계획 및 준비
마이그레이션 프로세스를 시작하기 전에 계획 및 준비 단계를 수행하여 심각한 문제를 방지할 수 있습니다.
필요한 시간을 줄여 주는 옵션 고려
변환기는 마이그레이션 시간을 줄이거나, 마이그레이션하는 동안 팀이 버전 제어에서 작업하도록 하여 마이그레이션 시간을 최소화할 수 있는 마이그레이션 옵션을 제공합니다. 다음 마이그레이션 옵션 중에서 팀에 가장 적절한 옵션을 결정합니다.
선택한 프로젝트 마이그레이션: 전체 Visual SourceSafe 데이터베이스를 동시에 마이그레이션하는 대신 선택한 프로젝트를 따로 마이그레이션할 수 있습니다. 자세한 내용은 이 항목의 뒷부분에 나오는 <ProjectMap> 섹션을 참조하십시오.
일부 기록 데이터 잘라내기: Visual SourceSafe의 보관 기능을 사용하여 일부 기록을 마이그레이션할 수 있습니다. 이전 기록을 마이그레이션하지 않으려면 이 옵션을 사용합니다. 이 기능을 사용하여 특정 날짜 이전 파일과 폴더의 버전 기록을 제거합니다. 자세한 내용은 이 항목 뒷부분에 나오는 항목 기록 잘라내기를 참조하십시오.
팀과 상의한 후 마이그레이션 예약
마이그레이션할 Visual SourceSafe 데이터베이스에 사용자가 액세스할 필요가 없는 시간으로 마이그레이션을 예약하십시오. 데이터가 많고 팀 규모가 크거나 오랫동안 프로젝트 작업을 한 경우 데이터를 준비하고 마이그레이션하는 데 상당한 시간이 필요할 수 있습니다.
중요
마이그레이션 프로세스가 이루어질 시간을 팀 멤버에게 알리고 프로세스 시작 전에 모든 파일을 체크 인하게 하십시오.
Visual SourceSafe 데이터베이스 복사 및 준비
다음 단계에 따라 Visual SourceSafe 데이터베이스를 복사하고 준비합니다.
파일을 체크 인합니다. Visual SourceSafe 데이터베이스의 파일을 모두 체크 인하는 것이 가장 좋습니다. 최대한 많은 파일을 체크 인하십시오.
Visual SourceSafe 프로젝트에 대한 액세스를 제거합니다. 마이그레이션할 Visual SourceSafe 프로젝트에 다른 사람이 액세스하지 않았는지 확인합니다.
데이터베이스를 복사합니다. Microsoft 웹 사이트의 How To Back Up a Visual SourceSafe Database 페이지에 제공된 지침을 따릅니다.
데이터베이스 복사본을 업그레이드합니다. Visual SourceSafe 데이터베이스가 Visual SourceSafe 6.0 이전 버전이면 Visual SourceSafe DDUPD 유틸리티를 사용하여 Visual SourceSafe 2005로 업그레이드합니다. 자세한 내용은 Microsoft 웹 사이트의 DDUPD Utility 항목을 참조하십시오.
(선택 사항) 항목 기록을 잘라냅니다. 자세한 내용은 이 항목의 뒷부분에 나오는 항목 기록 잘라내기를 참조하십시오.
데이터베이스 복사본에서 데이터 무결성 문제를 검색하여 해결합니다. Visual SourceSafe ANALYZE 유틸리티를 사용하여 데이터베이스의 데이터 무결성 문제를 찾아 해결합니다. 이 도구를 사용하는 방법에 대한 자세한 내용은 Microsoft 웹 사이트의 ANALYZE Utility 및 How to Detect and Fix Database Corruption Errors in Visual SourceSafe 페이지를 참조하십시오.
항목 기록 잘라내기
Visual SourceSafe에 저장된 기록을 일부만 마이그레이션하려는 경우 Visual SourceSafe의 보관 기능을 사용하여 특정 날짜 이후의 기록만 마이그레이션할 수 있습니다.
경고
이 방법을 사용하면 버전 기록이 Visual SourceSafe 데이터베이스에서 영구적으로 제거되므로 서비스 중인 데이터베이스 대신 Visual SourceSafe 데이터베이스 복사본으로 이 절차를 수행해야 합니다.
Visual SourceSafe에서 항목의 기록을 잘라내려면 Visual SourceSafe의 보관 기능을 사용하십시오. 다음 값 중 하나를 사용하여 이전의 기록을 잘라낼 타임스탬프를 지정할 수 있습니다.
레이블
폴더 버전
날짜
Visual SourceSafe에 보관하는 방법에 대한 자세한 내용은 Visual SourceSafe Archive Databases를 참조하십시오.
참고
Visual SourceSafe 보관 기능을 사용할 때 보관 파일 크기는 2GB(기가바이트)로 제한됩니다. 프로세스에 오류가 발생하면 크기가 작은 여러 프로젝트를 따로 보관하십시오.
마이그레이션 컴퓨터 준비
다음 단계에 따라 마이그레이션 컴퓨터를 준비합니다.
컴퓨터에 마이그레이션 프로세스를 완료하기 위한 디스크 공간이 충분한지 확인합니다. 필요한 디스크 공간을 계산하려면 다음 항목의 합계를 구합니다.
VSSConverter에서 임시 파일을 만들고 로그 파일을 생성하는 데 사용 가능한 5GB의 디스크 공간
마이그레이션할 Visual SourceSafe 데이터베이스에 있는 프로젝트 크기의 두 배에 해당하는 디스크 공간
다음 단계에서 설명하는 응용 프로그램을 충분히 설치할 수 있는 디스크 공간
마이그레이션 컴퓨터에 Visual Studio를 설치합니다.
중요
VSSConverter는 데이터베이스(SQL Server Express 또는 SQL Server)가 있어야 작동합니다. 기본적으로 Visual Studio를 설치할 때 SQL Server Express가 설치되며 VSSConverter가 작동하는 데 필요한 사용 권한이 부여됩니다. 자세한 내용은 이 항목의 뒷부분에 나오는 VSSConverter에서 사용할 데이터베이스 제공을 참조하십시오.
마이그레이션 컴퓨터에 Visual SourceSafe 2005를 설치합니다.
Microsoft 기술 자료 문서 950185와 관련된 업데이트를 설치합니다. Microsoft 웹 사이트의 KB950185 - VSS Required QFE for Orcas SP1 VSSConverter 페이지에서 이 소프트웨어를 다운로드할 수 있습니다.
Visual SourceSafe 데이터베이스 복사 및 준비의 단계를 따랐는지 확인합니다.
Visual SourceSafe 데이터베이스를 마이그레이션 컴퓨터의 폴더에 복사합니다.
경고
데이터베이스를 복사하는 대신 마이그레이션 컴퓨터가 Visual SourceSafe 데이터베이스의 데이터에 액세스할 수 있도록 파일 공유를 사용할 경우 마이그레이션 컴퓨터에 로그온하기 위해 사용하는 계정에 읽기 및 수정 액세스 권한을 제공해야 합니다. 마이그레이션 프로세스가 지연될 수 있으므로 이 방법은 사용하지 않는 것이 좋습니다.
중요
Visual SourceSafe 데이터베이스에 액세스하기 위해 마이그레이션 컴퓨터를 설정한 방법과 관계없이, 서비스 중인 데이터베이스가 아니라 데이터베이스 복사본에서 마이그레이션 프로세스를 실행하십시오. 이 방법을 사용하면 데이터를 보호할 수 있습니다.
VSSConverter에서 사용할 데이터베이스 제공
VSSConverter는 데이터베이스(SQL Server Express 또는 SQL Server)가 있어야 작동합니다. 기본적으로 Visual Studio를 설치할 때 SQL Server Express가 설치됩니다. Visual Studio를 설치할 때 이 옵션의 선택을 취소할 경우 수동으로 SQL Server Express 이상을 데이터베이스로 설치하거나 SQL Server를 데이터베이스로 사용해야 합니다.
사용하는 데이터베이스에 대해 "데이터베이스 만들기" 권한이 있어야 합니다. SQL Server Express를 Visual Studio와 함께 설치할 경우 자동으로 이 사용 권한이 부여됩니다.
SQL Server를 SQL Server Express 대신 사용하려면 설정 파일을 수정해야 합니다. 자세한 내용은 이 항목의 뒷부분에 나오는 <SQL> 요소를 참조하십시오.
Team Foundation Server 인스턴스 준비
다음 단계에 따라 마이그레이션 컴퓨터를 준비합니다.
Team Foundation용 데이터 계층에 사용 가능한 저장소 공간이 충분한지 확인합니다. 마이그레이션할 Visual SourceSafe 데이터베이스에 있는 프로젝트 데이터 크기의 약 두 배에 해당하는 공간이 필요합니다.
다음 요인에 따라 이 요구 사항이 높아지거나 낮아질 수 있습니다.
마이그레이션 중인 Visual SourceSafe 데이터베이스 크기
마이그레이션할 작업 수
마이그레이션 기능을 사용하려면 마이그레이션 프로세스 시작 전에 팀 프로젝트 컬렉션과 팀 프로젝트가 이미 Team Foundation 버전 제어용 서버에 있어야 합니다. Visual SourceSafe 데이터를 마이그레이션할 팀 프로젝트 컬렉션이나 팀 프로젝트가 아직 없으면 다음 단계 중 하나 또는 둘 다 수행합니다.
Visual SourceSafe 데이터베이스의 데이터를 마이그레이션할 팀 프로젝트 컬렉션을 만듭니다. 자세한 내용은 팀 프로젝트 컬렉션 만들기를 참조하십시오.
Visual SourceSafe 데이터베이스의 데이터를 마이그레이션할 하나 이상의 팀 프로젝트를 만듭니다. 자세한 내용은 팀 프로젝트 만들기를 참조하십시오.
데이터 분석
Visual SourceSafe에서 Team Foundation 버전 제어로 데이터를 마이그레이션하기 전에 먼저 Visual SourceSafe 변환기의 분석 기능을 사용하여 데이터의 문제점이 마이그레이션 결과에 영향을 줄지 여부를 확인해야 합니다. 이 기능은 마이그레이션 기능이 데이터를 마이그레이션하기 위해 사용하는 사용자 매핑 파일도 생성합니다.
분석 설정 파일 만들기
분석 기능을 사용하려면 설정 파일을 만들어야 합니다. 이 파일에서 마이그레이션할 Visual SourceSafe 데이터베이스 경로와 마이그레이션할 폴더를 지정합니다.
다음 XML은 분석 설정 파일의 예제입니다.
<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting>
<Source name="VSS">
<VSSDatabase name="c:\ourvss"></VSSDatabase>
<UserMap name="c:\ourvss\migrate\Usermap.xml"></UserMap>
</Source>
<ProjectMap>
<Project Source="$/Core"></Project>
<Project Source="$/ProjectA"></Project>
<Project Source="$/ProjectB"></Project>
</ProjectMap>
</ConverterSpecificSetting>
<Settings>
<Output file="c:\ourvss\migrate\logs\ContosoVSSAnalyze.xml"></Output>
</Settings>
</SourceControlConverter>
위의 예제를 복사하여 설정 파일에 붙여 넣은 다음 수정할 수 있습니다. 다음 정보를 사용하여 필요에 따라 예제를 적용할 수 있습니다.
<?xml encoding> 특성
<?xml encoding> 특성은 설정 파일에 사용되는 인코딩과 일치해야 합니다. 예를 들어 파일이 유니코드로 저장되면 <?xml encoding> 태그는 다음과 같습니다.
<?xml version="1.0" encoding="unicode">
<VSSDatabase name> 특성
마이그레이션할 Visual SourceSafe 데이터베이스 복사본의 srcsafe.ini 파일이 포함된 폴더 경로를 <VSSDatabase name> 특성에 지정하십시오. 예제 코드는 다음과 같습니다.
<Source name="VSS">
...
<VSSDatabase name="c:\ourvss"></VSSDatabase>
...
</Source>
경로에 srcsafe.ini 문자열을 포함할 수 없습니다. 예를 들어 다음 <VSSDatabase name> 특성은 잘못된 것이며 VSSConverter 명령이 실패하는 원인이 됩니다.
<Source name="VSS">
...
<VSSDatabase name="c:\ourvss\srcsafe.ini"></VSSDatabase>
...
</Source>
<UserMap name> 특성
분석 기능은 Visual SourceSafe 사용자에 대한 데이터를 수집 및 컴파일하고 XML 파일에 저장합니다. 또는 이 데이터를 저장할 파일의 경로와 이름을 <UserMap name> 특성에 지정할 수도 있습니다. 이 특성을 지정하지 않으면 분석 기능이 UserMap.xml이라는 파일을 만들고 현재 디렉터리에 저장합니다.
<ProjectMap> 섹션
<ProjectMap> 섹션에서 마이그레이션할 각각의 Visual SourceSafe 프로젝트 경로를 <Project> 항목의 Source 특성에 지정하십시오.
Visual SourceSafe 데이터베이스의 데이터를 모두 마이그레이션하려면 <ProjectMap> 섹션을 다음 예제와 일치하게 하십시오.
<ProjectMap>
<Project From="$/"></Project>
</ProjectMap>
전체 Visual SourceSafe 데이터베이스를 동시에 마이그레이션하는 대신 선택한 프로젝트를 따로 마이그레이션할 수 있습니다. 이 옵션을 사용하면 마이그레이션할 데이터가 많을 때 마이그레이션하는 동안 팀을 차단하는 것을 방지할 수 있습니다.
Source 특성에 있는 경로는 겹치면 안 됩니다. 예를 들어 다음 <ProjectMap> 섹션은 올바르지 않습니다.
<ProjectMap>
<Project Source="$/ProjectA"></Project>
<Project Source="$/ProjectA/Controller"></Project>
</ProjectMap>
<Output file> 특성
<Settings> 섹션에서 분석 보고서를 작성할 파일의 경로와 이름을 <Output file> 특성에 지정할 수 있습니다. 이 특성을 지정하지 않으면 변환기가 VSSAnalysisReport.xml이라는 파일로 보고서를 작성하고 현재 디렉터리에 저장합니다.
<SQL> 요소
변환기가 SQL Server Express 대신 SQL Server를 사용하게 하려면 <SQL> 요소를 마이그레이션 설정 파일의 <Source> 섹션에 추가하면 됩니다. 이 요소에는 <SQL Server="SQL_Server_name"></SQL>. 구문이 사용됩니다.
예를 들어, 다음 <SQL> 요소는 서버가 "ContosoSQLServer"임을 나타냅니다.
<Source name="VSS">
...
<SQL Server="ContosoSQLServer"></SQL>
...
</Source>
분석 명령 실행
변환기를 사용하여 프로젝트를 분석하려면
시작을 클릭하고 모든 프로그램, Microsoft Visual Studio 2010, Visual Studio Tools를 차례로 가리킨 다음 Visual Studio 10.0 명령 프롬프트를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 클릭합니다.
사용자 계정 컨트롤 대화 상자가 나타나면 계속을 클릭합니다.
다음 명령줄을 입력합니다.
VSSConverter Analyze settings.xml
만들어 놓은 분석 설정 파일의 경로와 이름으로 settings.xml을 바꿉니다.
메시지가 나타나면 Visual SourceSafe의 관리자 암호를 입력합니다.
분석 기능이 진행되는 동안 VSSConverter에서 진행 상태를 표시합니다. 프로세스가 완료되면 분석 기능이 보고서와 사용자 매핑 파일을 생성합니다.
분석 기능으로 발견된 문제 검토 및 해결
분석 보고서에는 Visual SourceSafe 데이터베이스에 포함되어 마이그레이션 프로세스 도중 오류를 일으킬 수 있는 문제에 대한 정보가 있습니다. 다음 단원의 설명에 따라 이러한 문제를 최대한 해결하여 마이그레이션 프로세스의 문제를 최소화하십시오.
일부 파일이 체크 아웃되는 경우
현재 체크 아웃된 파일이 보고서에 나열됩니다. 마이그레이션 프로세스에서는 체크 아웃 정보를 보존하지 않습니다. Visual SourceSafe 데이터베이스의 모든 파일을 체크 인 하는 것이 가장 좋습니다. 최대한 많은 파일을 체크 인하십시오.
일부 항목에 데이터 무결성 문제가 있는 경우
데이터 무결성이 손상된 항목이 보고서에 나열됩니다. 이러한 항목은 마이그레이션되지 않습니다. Visual SourceSafe ANALYZE 유틸리티를 사용하여 이런 종류의 문제를 해결할 수 있습니다. 자세한 내용은 Microsoft 웹 사이트의 ANALYZE Utility 및 How to Detect and Fix Database Corruption Errors in Visual SourceSafe 페이지를 참조하십시오.
매핑된 프로젝트의 일부 폴더에 <ProjectMap> 섹션에 없는 기록이 포함되는 경우
Visual SourceSafe 데이터베이스의 특정 프로젝트에서 다른 프로젝트로 폴더를 이동한 경우 해당 폴더의 기록이 원래 프로젝트와 현재 프로젝트 모두에 포함됩니다. 해당 폴더를 모든 기록과 함께 마이그레이션하려면 원래 프로젝트와 현재 프로젝트를 모두 마이그레이션해야 합니다.
Project2라는 Visual SourceSafe 프로젝트를 마이그레이션할 경우를 예로 들어 보겠습니다. 이 프로젝트에는 기록의 특정 시점에 Project1에서 이동한 $/Project2/FeatureA 폴더가 들어 있습니다.
<ProjectMap> 섹션에 포함된 항목 |
예제 |
결과 |
---|---|---|
두 프로젝트 |
|
폴더가 전체 기록과 함께 마이그레이션됩니다. |
폴더가 현재 포함된 프로젝트가 아닌 폴더가 원래 포함되어 있던 프로젝트 |
|
폴더가 마이그레이션되지 않습니다. |
폴더가 원래 포함되어 있던 프로젝트가 아닌 폴더가 현재 포함된 프로젝트 |
|
현재 프로젝트로 이동한 시점 이후의 기록과 함께 폴더가 마이그레이션됩니다. 폴더가 현재 프로젝트로 이동하기 전에 발생한 기록은 마이그레이션되지 않습니다. |
설정 파일의 <ProjectMap> 섹션에 대한 자세한 내용은 이 항목의 앞부분에 나오는 <ProjectMap> 섹션을 참조하십시오.
일부 레이블 이름이 Team Foundation 버전 제어에서 지원되지 않는 경우
Team Foundation 버전 제어에서 지원하지 않는 문자가 포함되어 있어 마이그레이션할 때 변경될 레이블 이름이 보고서에 나열됩니다.
데이터 마이그레이션
분석 기능을 실행하면 데이터 마이그레이션 준비가 거의 끝납니다. 마이그레이션 명령을 실행하기 전에 마이그레이션 설정 파일을 만들어야 합니다. 사용자 이름을 마이그레이션하는 방법을 지정할 수도 있습니다.
사용자 이름 마이그레이션 방법 지정
Visual SourceSafe에서 Team Foundation 버전 제어로 사용자 정보를 마이그레이션하는 방법을 제어할 수 있습니다. 특히 마이그레이션 기능이 Team Foundation 버전 제어에서 각 항목의 기록에 있는 각 변경 집합에 연결할 사용자 이름을 지정할 수 있습니다. 이 항목의 앞부분에서 설명한 대로 분석 기능을 실행할 때 만든 사용자 매핑 파일을 편집하여 해당 사용자 이름을 지정합니다.
사용자 매핑 파일은 선택 사항입니다. 설정 파일에서 <UserMap> 요소를 생략하면 각 변경 집합이 다음과 같이 빌드됩니다.
사용자 필드가 VSSConverter를 실행하는 계정 이름으로 설정됩니다.
Visual SourceSafe 데이터베이스에서 작업을 수행한 사용자의 이름이 설명 필드에 저장됩니다.
사용자 매핑 파일 예제
분석 기능을 실행할 때 Visual SourceSafe 사용자에 대한 데이터가 컴파일되어 XML 파일에 저장됩니다. 마이그레이션할 Visual SourceSafe 프로젝트에서 버전 제어 작업을 수행해 본 Visual SourceSafe 사용자가 모두 이 파일에 나열됩니다.
다음 예제에서는 Visual SourceSafe 변환기 분석 기능으로 만든 사용자 매핑 파일을 보여 줍니다.
<?xml version="1.0" encoding="utf-8"?>
<UserMappings>
<UserMap From="Admin" To=""></UserMap>
<UserMap From="Guest" To=""></UserMap>
<UserMap From="Kim" To=""></UserMap>
<UserMap From="Satomi" To=""></UserMap>
<UserMap From="Mark" To=""></UserMap>
</UserMappings>
사용자 매핑 파일에서 UserMap 항목 일부 또는 전부의 To 특성을 지정하거나 지정하지 않을 수 있습니다. 예를 들어 다음과 같이 이전 예제를 수정할 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<UserMappings>
<UserMap From="Admin" To="NORTHAMERICA\KenM"></UserMap>
<UserMap From="Guest" To="Test1"></UserMap>
<UserMap From="Kim" To="EUROPE\KimT"></UserMap>
<UserMap From="Satomi" To="ASIA\SatomiH"></UserMap>
<UserMap From="Mark" To=""></UserMap>
</UserMappings>
이전 예제에서는 Guest가 Test1에 매핑되고 도메인이 지정되지 않습니다. 이 경우 VSSConverter는 계정이 기본 도메인에 속한다고 가정합니다.
<UserMap To> 특성을 지정하지 않으면 각 변경 집합이 다음과 같이 빌드됩니다.
사용자 필드가 VSSConverter를 실행한 계정 이름으로 설정됩니다.
Visual SourceSafe 데이터베이스에서 작업을 수행한 사용자의 이름이 설명 필드에 저장됩니다.
<UserMap To> 특성을 지정하고 Team Foundation을 실행하는 서버의 유효한 사용자가 값이 될 경우 사용자 필드는 해당 계정 이름으로 설정됩니다. 값이 Team Foundation을 실행하는 서버의 유효한 사용자가 아닐 경우 VSSConverter는 오류를 표시하고 마이그레이션 프로세스를 종료합니다.
마이그레이션 설정 파일 만들기
마이그레이션 설정 파일을 사용하여 마이그레이션할 Visual SourceSafe 데이터를 지정하고 마이그레이션 방법을 다양하게 제어합니다. 가장 쉽게 이 파일을 만들려면 이 항목의 앞부분에 나오는 분석 설정 파일 만들기의 지침을 따르십시오. 그런 다음 마이그레이션 기능에 사용할 수 있도록 파일에 데이터를 더 추가하십시오.
다음 예제에서는 마이그레이션 설정 파일을 보여 줍니다.
<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting>
<Source name="VSS">
<VSSDatabase name="c:\ourvss"></VSSDatabase>
<UserMap name="c:\ourvss\migrate\Usermap.xml"></UserMap>
</Source>
<ProjectMap>
<Project Source="$/Core" Destination="$/CoreTeamProject"></Project>
<Project Source="$/ProjectA" Destination="$/ClientTeamProject/ProjectA"></Project>
<Project Source="$/ProjectB" Destination="$/ClientTeamProject/ProjectB"></Project>
</ProjectMap>
</ConverterSpecificSetting>
<Settings>
<TeamFoundationServer name="My_Server" port="8080" protocol="http" collection="tfs/DefaultCollection"></TeamFoundationServer>
<Output file="c:\ourvss\migrate\logs\ContosoVSSMigrate.xml"></Output>
</Settings>
</SourceControlConverter>
다음은 마이그레이션 기능이 데이터를 마이그레이션하는 방법을 지정할 수 있도록 설정 파일을 수정하는 데 도움이 되는 정보입니다.
<Project Destination> 특성
설정 파일의 <ProjectMap> 섹션에 있는 <Project> 요소마다 Destination 특성을 제공하여 Visual SourceSafe 데이터베이스의 프로젝트 내용을 마이그레이션할 Team Foundation 버전 제어용 서버(Source 특성에 지정)에서 위치의 경로를 지정하십시오.
예를 들어 Visual SourceSafe 데이터베이스의 ProjectA 내용을 Client라는 팀 프로젝트 루트의 ProjectA로 마이그레이션하려고 합니다.
<ProjectMap>
<Project Source="$/ProjectA" Destination="$/ClientTeamProject/ProjectA"></Project>
</ProjectMap>
Destination 특성의 값이 유효하려면 다음 조건에 맞아야 합니다.
마이그레이션 프로세스를 시작하기 전에 Destination 특성의 팀 프로젝트(이전 예제에서 팀 프로젝트는 ClientTeamProject)가 이미 팀 프로젝트 컬렉션에 있어야 합니다.
Destination 특성의 폴더(이전 예제에서 해당 폴더는 ProjectA)가 이미 팀 프로젝트에 있을 경우 이 폴더는 비어 있어야 합니다.
<Project> 요소의 Destination 특성에 있는 경로가 다른 <Project> 요소의 Destination 특성에 있는 경로와 겹치면 안 됩니다. 예를 들어 다음 <ProjectMap> 섹션은 올바르지 않습니다.
<ProjectMap> <Project Source="$/ProjectA" Destination="$/ClientTeamProjectA/"></Project> <Project Source="$/ProjectB" Destination="$/ClientTeamProjectA/ProjectB"></Project> </ProjectMap>
<TeamFoundationServer> 태그
<Settings> 섹션에서 다음 형식을 사용하여 <TeamFoundationServer> 태그를 추가하고, Team Foundation Server를 실행하는 서버에서 팀 프로젝트 컬렉션의 이름, 포트, 프로토콜 및 경로를 지정하십시오.
<TeamFoundationServer name="ServerName" port="PortNumber" protocol="http" collection="path/collection name></TeamFoundationServer>
<Label migrate="false" /> 태그
Visual SourceSafe 데이터베이스에 여러 파일에 적용되는 여러 레이블이 있을 경우 마이그레이션 프로세스가 지연될 수 있습니다. 팀에 이 데이터가 필요 없으면 <Label migrate="false" /> 태그를 <Settings> 섹션에 추가하여 VSSConverter에서 레이블을 무시하도록 구성할 수 있습니다.
<Output file> 특성
<Settings> 섹션에서 <Output file> 특성에 마이그레이션 보고서를 작성할 파일 및 경로를 지정할 수 있습니다. 이 특성을 포함하지 않으면 변환기가 VSSMigrationReport.xml이라는 파일로 보고서를 작성하고 현재 디렉터리에 저장합니다.
마이그레이션 명령 실행
마이그레이션 명령을 실행하려면
시작을 클릭하고 모든 프로그램, Microsoft Visual Studio 2010, Visual Studio Tools를 차례로 가리킨 다음 Visual Studio 10.0 명령 프롬프트를 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 클릭합니다.
사용자 계정 컨트롤 대화 상자가 나타나면 계속을 클릭합니다.
명령 프롬프트에서 다음 명령줄을 입력합니다.
VSSConverter Migrate settings.xml
만들어 놓은 마이그레이션 설정 파일의 경로와 이름으로 settings.xml을 바꿉니다.
마이그레이션 기능은 Visual SourceSafe 데이터베이스에서 마이그레이션하는 각각의 프로젝트와 Team Foundation 버전 제어용 서버에서 데이터가 마이그레이션될 각각의 폴더를 표시합니다.
메시지가 나타나면 Y를 눌러 마이그레이션을 확인합니다.
메시지가 나타나면 Visual SourceSafe 데이터베이스를 관리하는 사용자의 암호를 입력합니다.
프로세스 도중, 마이그레이션 기능은 명령 프롬프트 창에 현재 상태를 표시합니다.
증분 마이그레이션을 사용하여 프로세스 다시 시작
어떤 이유로 마이그레이션 프로세스가 중단된 경우 프로세스가 끝난 시점부터 증분 마이그레이션으로 프로세스를 다시 시작할 수 있습니다. 오류나 네트워크 문제로 인해 마이그레이션 프로세스가 실패한 경우 증분 마이그레이션이 유용할 수 있습니다. 증분 마이그레이션에서 변환기는 이전 세션에서 마이그레이션되지 않은 데이터만 마이그레이션합니다.
증분 마이그레이션을 시작하려면 마이그레이션 명령 실행의 단계를 따르십시오. 증분 마이그레이션을 수행할지 묻는 메시지가 나타나면 Y를 누르십시오.
증분 마이그레이션 제한 사항
다음 제한 사항을 지켜야 증분 마이그레이션을 제대로 수행할 수 있습니다.
Visual SourceSafe 데이터베이스에서 제거, 삭제, 보관 또는 복원 작업을 수행하면 안 됩니다.
마이그레이션 설정 파일의 <ProjectMap> 섹션을 변경하면 안 됩니다.
Team Foundation 버전 제어용 서버에서 마이그레이션 설정 파일의 <ProjectMap> 섹션에 지정된 폴더나 폴더 내용을 수정하면 안 됩니다.
마이그레이션 확인 및 문제 해결
마이그레이션 기능이 완료되면 다음 단계를 수행해야 합니다.
마이그레이션 기능으로 생성된 보고서를 검토합니다.
Team Foundation 버전 제어용 서버의 데이터를 검사하여 데이터가 올바르게 마이그레이션되었는지 확인합니다.
이러한 단계를 수행한 후 문제를 해결해야 할 수도 있습니다.
SQL Server Express의 저장소 한도 초과 해결 방법
기본적으로 VSSConverter에서는 SQL Server Express를 사용하여 임시 메타데이터를 저장합니다. 대개 이 메타데이터에는 마이그레이션하는 데이터의 전체 크기 중 적은 비율만 필요합니다. SQL Server Express의 4GB 한도에 도달하여 마이그레이션이 실패할 경우 변환기에 SQL Server 배포를 대신 사용하도록 하는 설정을 적용할 수 있습니다. 자세한 내용은 이 항목의 앞부분에 나오는 <SQL> 요소를 참조하십시오.
MS-DOS 호환 약식 이름(8.3) 형식(TF227014)
Team Foundation 버전 제어에서는 MS-DOS 호환 약식 이름(8.3) 형식(예: abcdef~1.txt)의 파일 이름을 허용하지 않습니다. 해당 이름을 가진 파일을 분석하거나 마이그레이션을 시도하면 TF227014 오류가 발생합니다.
이 문제를 해결하기 위해 해당 이름의 파일을 허용하게 하는 설정을 Team Foundation용 응용 프로그램 계층에 임시로 적용할 수 있습니다. 그러려면 Team Foundation의 구성 데이터베이스에서 Allow8Dot3Paths를 True로 설정해야 합니다.
중요
MS-DOS 호환 약식 이름을 지원하는 클라이언트 컴퓨터에서 이런 문제를 방지하려면 마이그레이션 프로세스를 완료한 후 다음 절차의 설명에 따라 Allow8Dot3Paths를 False로 설정하십시오.
다음 절차를 수행하려면 Team Foundation의 응용 프로그램 계층 서버에서 Windows PowerShell을 사용할 수 있어야 합니다. 자세한 내용은 Microsoft 웹 사이트의 Windows PowerShell을 사용한 스크립팅 항목을 참조하십시오.
필요한 권한
이 절차를 수행하려면 Team Foundation의 응용 프로그램 계층 서버에서 Administrators 그룹의 멤버여야 합니다. 자세한 내용은 Team Foundation Server 권한을 참조하십시오.
MS-DOS 호환 약식 이름 형식에 따라 명명된 파일이 있는 Visual SourceSafe 데이터베이스를 마이그레이션하려면
Team Foundation의 응용 프로그램 계층 서버에 로그온합니다.
Allow8Dot3Paths라는 Windows PowerShell 스크립트를 만듭니다.
Allow8Dot3Paths PowerShell 스크립트에서 텍스트를 복사하여 스크립트에 텍스트를 붙여 넣습니다.
Team Foundation Server에 연결하는 데 사용하는 URL의 경로와 일치하도록 ServerPath를 변경합니다. 기본적으로 서버 경로는 "tfs"입니다.
데이터를 마이그레이션할 팀 프로젝트 컬렉션 이름과 일치하도록 CollectionName을 변경합니다(예: DefaultCollection).
그러면 스크립트에 다음과 같은 줄이 나타납니다.
$collectionBaseUrl = "https://localhost:8080/tfs/DefaultCollection/";
Allow8Dot3Paths 스크립트를 실행합니다.
Team Foundation의 응용 프로그램 풀을 재생합니다.
시작, 관리 도구를 차례로 클릭한 다음 컴퓨터 관리를 클릭합니다.
탐색 창에서 서비스 및 응용 프로그램을 확장합니다.
IIS(인터넷 정보 서비스) 관리자를 클릭하고 로컬 컴퓨터를 확장한 다음 응용 프로그램 풀을 두 번 클릭합니다.
응용 프로그램 풀을 마우스 오른쪽 단추로 클릭하고 재생을 클릭합니다.
마이그레이션 명령을 실행합니다.
자세한 내용은 마이그레이션 명령 실행을 참조하십시오.
전에 만든 Allow8Dot3Paths Windows PowerShell 스크립트를 수정하여 "true"를 "false"로 바꿉니다.
수정한 Allow8Dot3Paths 스크립트를 실행합니다.
Team Foundation의 응용 프로그램 풀을 재생합니다.
시작, 관리 도구를 차례로 클릭한 다음 컴퓨터 관리를 클릭합니다.
탐색 창에서 서비스 및 응용 프로그램을 확장합니다.
IIS(인터넷 정보 서비스) 관리자를 클릭하고 로컬 컴퓨터를 확장한 다음 응용 프로그램 풀을 두 번 클릭합니다.
응용 프로그램 풀을 마우스 오른쪽 단추로 클릭하고 재생을 클릭합니다.
팀 탐색기를 열고 데이터를 마이그레이션한 팀 프로젝트 컬렉션에 연결합니다.
소스 제어 탐색기에서 이름이 MS-DOS 호환 약식 이름(8.3) 형식인 파일의 이름을 바꿉니다.
Allow8Dot3Paths PowerShell 스크립트
# Load client OM assembly.
[Reflection.Assembly]::Load("Microsoft.TeamFoundation.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
$collectionBaseUrl = "https://localhost:8080/ServerPath/CollectionName/";
$tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($collectionBaseUrl);
$collectionHive = $tfs.GetService([Microsoft.TeamFoundation.Framework.Client.ITeamFoundationRegistry]);
# Set some version control settings in the collection hive.
$collectionHive.SetValue("/Service/VersionControl/Settings/Allow8Dot3Paths", "True");
# Display all version control settings as a table.
$collectionHive.ReadEntries("/Service/VersionControl/Settings/...") | ft -a
VSSConverter의 데이터 변환 방법
Team Foundation과 Visual SourceSafe는 기능에 커다란 차이가 있으므로 VSSConverter는 마이그레이션할 때 특정 종류의 데이터를 수정해야 합니다.
변경 집합
Team Foundation 버전 제어의 주요 기능은 사용자가 변경 내용 집합을 체크 인할 때 여러 파일의 변경 내용을 한 단위로 그룹화하는 것입니다. 이 하나의 단위를 변경 집합이라고 합니다.
Visual SourceSafe에는 변경 집합에 해당하는 기능이 없습니다. 그러나 다음 조건이 충족되면 변환 프로세스 도중 각 변경 내용 집합이 변경 집합으로 그룹화됩니다.
변경 내용이 서로 충돌하지 않습니다. 예를 들어 두 개의 작업이 동일한 파일이나 폴더에 영향을 주면 안 됩니다.
서로 겨우 몇 분 차이로 변경되었습니다.
같은 사용자가 변경 내용을 체크 인했습니다.
변경 내용의 체크 인 설명이 같습니다.
자세한 내용은 변경 집합 사용을 참조하십시오.
공유 및 고정
Visual SourceSafe에서 여러 폴더 간에 파일을 공유할 수 있습니다. 공유 폴더의 변경 내용이 파일을 공유하는 폴더 간에 복제됩니다. Team Foundation 버전 제어에는 이에 해당하는 기능이 없습니다. 마이그레이션 도중 Visual SourceSafe 프로젝트의 공유 파일은 Team Foundation 버전 제어용 서버에 있는 항목의 추가 독립 복사본을 만들어 마이그레이션됩니다.
Team Foundation 버전 제어에는 Visual SourceSafe의 고정 기능에 해당하는 기능이 없습니다. 마이그레이션 도중 Visual SourceSafe 프로젝트의 고정 항목은 Team Foundation 버전 제어용 서버에서 레이블이 있는 항목으로 변환됩니다. 자세한 내용은 다음 단원을 참조하십시오.
Team Foundation 버전 제어의 레이블에 대한 자세한 내용은 레이블을 사용하여 파일의 스냅숏 만들기를 참조하십시오.
기록 데이터
Visual SourceSafe 데이터베이스에 있는 항목 기록의 각 이벤트는 Team Foundation 버전 제어용 서버에 변경 집합으로 전송됩니다. 마이그레이션 프로세스가 완료되면 기록 창에 이 데이터가 표시됩니다. 자세한 내용은 기록 창 사용을 참조하십시오.
마이그레이션 도중 데이터가 일부 변경됩니다.
사용자 이름과 날짜 및 타임스탬프에 대한 데이터의 마이그레이션 방법
Visual SourceSafe 데이터베이스에 있는 항목의 기록에 있는 각 항목이 Team Foundation 버전 제어용 서버의 변경 집합으로 마이그레이션될 경우 변경되는 내용은 다음과 같습니다.
변경 집합의 날짜 및 타임스탬프가 항목이 마이그레이션된 날짜 및 시간으로 설정됩니다.
원래의 날짜 및 타임스탬프가 변경 집합의 설명 필드에 저장됩니다.
사용자 이름은 사용자 매핑 프로세스 결과에 따라 변경 집합의 사용자 필드나 설명 필드에 저장됩니다. 자세한 내용은 이 항목의 앞부분에 나오는 사용자 이름 마이그레이션 방법 지정을 참조하십시오.
특정 이벤트 형식의 변환 방법
편집, 이름 바꾸기 및 삭제와 같은 이벤트는 Visual SourceSafe 데이터베이스에서 Team Foundation 버전 제어용 서버의 변경 집합으로 바로 마이그레이션됩니다. 그러나 VSSConverter는 다음 표와 같이 예기치 않은 방식으로 일부 이벤트를 마이그레이션합니다.
Visual SourceSafe 이벤트 |
Team Foundation으로 마이그레이션되는 방법 |
---|---|
파일 또는 폴더 추가 |
이 변경 집합은 마이그레이션되는 각 파일 및 폴더의 기록에서 첫째 이벤트입니다. Visual SourceSafe에서와 달리 포함된 각각의 자식 항목의 부모에 대해서는 이벤트가 기록되지 않습니다. |
분기 |
Visual SourceSafe에서는 분기에 앞서 공유가 전제되어야 하지만 Team Foundation 버전 제어에서는 공유가 지원되지 않으므로 분기된 필드를 마이그레이션하면 대상 폴더에 파일 복사본이 만들어집니다. 공유될 때 있었던 파일 버전을 복사해 대상 폴더에 복사본을 저장하여 Visual SourceSafe 데이터베이스의 공유 파일이 Team Foundation 버전 제어로 마이그레이션됩니다. 이후부터 분기 이벤트가 발생할 때까지 두 개의 파일 복사본에 각 변경 집합이 복제됩니다. |
파일에 레이블 지정 |
Team Foundation에서 파일이나 폴더 버전에 레이블을 적용합니다. Visual SourceSafe에서 명시적이거나 암시적인 방법으로 파일에 레이블을 지정할 수 있습니다. Visual SourceSafe에서 파일에 명시적으로 레이블이 지정되어 있으면 파일의 새 버전이 만들어집니다. 해당 레이블을 사용하여 파일을 가져올 경우 레이블을 만들 때 있었던 파일 버전에 해당하는 파일 내용을 가져옵니다. 명시적 레이블을 마이그레이션하기 위해 변환기는 Visual SourceSafe에서 레이블이 있는 버전에 해당하는 레이블을 가져와 Team Foundation에 있는 버전에 적용합니다. 그러나 새 버전은 만들지 않습니다. Visual SourceSafe에서 폴더에 레이블을 적용할 때 해당 폴더에 포함된 모든 파일과 폴더에 레이블이 암시적으로 적용되며 변환기는 새 버전을 만들지 않습니다. 암시적 레이블의 경우, 폴더의 명시적 레이블을 마이그레이션하는 동안 Team Foundation의 해당 버전에 자동으로 레이블이 지정되므로 변환기에서는 어떠한 작업도 수행하지 않습니다.
참고
Visual SourceSafe 데이터베이스에 여러 파일에 적용되는 여러 레이블이 있을 경우 마이그레이션 프로세스가 지연될 수 있습니다.팀에 이 데이터가 필요 없으면 VSSConverter에서 레이블을 무시하도록 구성할 수 있습니다.자세한 내용은 이 항목의 앞부분에 나오는 <Label migrate="false" />를 참조하십시오.
|
폴더에 레이블 지정 |
Visual SourceSafe에서 폴더에 레이블을 적용할 때 해당 폴더에 포함된 모든 파일과 폴더에 레이블이 암시적으로 적용되며 새 버전은 만들어지지 않습니다. 이 폴더를 마이그레이션하는 동안 변환기가 Team Foundation의 해당 폴더 버전에 레이블을 적용합니다. 이 동작을 수행하면 레이블이 지정된 폴더에 있는 파일 및 폴더의 현재 버전에 자동으로 레이블이 적용됩니다.
참고
Visual SourceSafe 데이터베이스에 여러 파일에 적용되는 여러 레이블이 있을 경우 마이그레이션 프로세스가 지연될 수 있습니다.팀에 이 데이터가 필요 없으면 VSSConverter에서 레이블을 무시하도록 구성할 수 있습니다.자세한 내용은 <Label migrate="false" />를 참조하십시오.
|
폴더 이동 |
폴더 이동 이벤트는 Team Foundation에 폴더의 새 버전을 만듭니다. 원본 폴더와 대상 폴더를 동시에 마이그레이션해야 VSSConverter에서 이동한 폴더에 있는 항목의 전체 기록을 마이그레이션합니다. 자세한 내용은 분석 기능으로 발견된 문제 검토 및 해결을 참조하십시오.
참고
폴더 이동 이벤트를 복원 이벤트와 함께 사용하면 기록 데이터가 올바르게 마이그레이션되지 않을 수도 있습니다.
|
복원 |
복원 이벤트 전에 발생하는 기록 데이터는 마이그레이션되지 않습니다. |
고정 및 고정 해제 |
Team Foundation 버전 제어에서는 고정이 지원되지 않습니다. VSSConverter에서는 두 개의 레이블을 만들어 고정된 파일을 마이그레이션합니다. PINNED_LATEST 레이블은 고정된 파일의 고정된 버전 및 고정 해제된 파일의 가장 최근 버전에 적용됩니다. PINNED 레이블은 고정된 파일의 고정된 버전에만 적용됩니다. 마이그레이션 후에 PINNED_LATEST 레이블은 Visual SourceSafe의 최신 버전 가져오기 기능을 사용할 때와 동일한 파일을 가져옵니다. 그러나 파일을 고정한 후 체크 인 이외에 파일을 삭제하거나 이름을 바꾸는 등의 이벤트가 발생할 경우 PINNED_LATEST 레이블이 다른 파일을 반환할 수 있습니다. |
공유 |
Team Foundation 버전 제어에서는 공유가 지원되지 않습니다. 공유될 때 있었던 파일 버전을 복사해 대상 폴더에 복사본을 저장하여 Visual SourceSafe 데이터베이스의 공유 파일이 Team Foundation 버전 제어로 마이그레이션됩니다. 이후부터 두 개의 파일 복사본에 각 변경 집합이 복제됩니다. |
파일 또는 폴더 삭제 취소 |
파일이나 폴더의 삭제 취소 이벤트를 마이그레이션하는 동안 변환기는 이벤트를 재생하여 Team Foundation에서 파일 및 폴더의 새 버전을 만듭니다. VSSConverter는 파일 또는 폴더 이름, 삭제 취소된 날짜와 시간 및 사용자 이름이 포함된 변경 집합을 만듭니다. |
소스 제어 바인딩
VSSConverter는 각 솔루션의 버전 제어 바인딩을 복원합니다.