Visual SourceSafe에서 마이그레이션

업데이트: 2007년 11월

Visual SourceSafe는 전문 소프트웨어 개발자용 소스 제어 도구입니다. Visual SourceSafe에 대한 자세한 내용은 Visual Studio 소스 제어를 참조하십시오. Team Foundation은 .NET 웹 서비스를 사용하여 SQL Server 데이터베이스에 저장된 항목에 액세스하는 클라이언트-서버 소스 제어 시스템입니다. Team Foundation 소스 제어의 아키텍처에서는 향상된 성능과 안정성을 제공합니다.

Team FoundationVisual SourceSafe 변환기 도구는 Visual SourceSafe 데이터베이스의 파일, 폴더, 버전 기록, 레이블 및 사용자 정보를 Team Foundation 버전 제어로 전송합니다. 파일과 기록 정보를 Team Foundation으로 이동하려면 먼저 Visual SourceSafe 데이터베이스의 백업 복사본을 분석하고, 가능한 한 많은 파일을 체크 인하고, Visual SourceSafe에서 Team Foundation으로 전송할 수 없는 정보를 파악해야 합니다.

Team Foundation과 Visual SourceSafe의 차이점

Visual SourceSafe 및 Team Foundation 버전 제어에서는 다음과 같이 동일한 기본 작업을 수행할 수 있습니다.

  • 동시에 두 가지 버전 이상의 제품 개발

  • 다른 버전에 영향을 주지 않고 릴리스된 버전의 제품 변경

  • 관련 파일을 일괄적으로 빠르게 가져오기

  • 변경한 사람 및 시간 확인

  • 파일의 수정 버전 비교

  • 한 버전에서 다른 버전으로 변경 내용 이동

Team Foundation 버전 제어 클라이언트 인터페이스는 Visual SourceSafe 사용자에게 친숙하게 설계되었습니다. 두 제품 모두 명령줄 클라이언트 및 Microsoft Visual Studio Team System 통합 기능을 제공합니다. Team Foundation 버전 제어에는 Visual SourceSafe와 같은 별도의 사용자 인터페이스가 없습니다.

많은 유사점에도 불구하고 Team Foundation과 Visual SourceSafe는 근본적인 면에서 다릅니다. 이 항목은 이러한 차이점에 대해 살펴보는 주요 단원 두 개로 나뉘어 있습니다.

아키텍처 차이점 단원에서는 Team Foundation과 Visual SourceSafe의 기술 및 작업 차이점에 대해 설명합니다.

기능 차이점 단원에서는 한 제품에는 있지만 다른 제품에는 없는 기능을 살명하고, 사소한 기능 변경 사항에 대해 설명하고, 제품별로 다른 기본 설정을 살펴보고, 이러한 변경 사항이 팀에서 Team Foundation을 사용하여 더욱 효과적으로 개발하는 데 어떠한 도움이 되는지에 대해 설명합니다.

아키텍처 차이점

SourceSafe Explorer와 Visual Studio 플러그 인은 대개 공유 네트워크 폴더에 저장된 파일의 모음인 Visual SourceSafe 데이터베이스에서 읽고 씁니다.

보안 및 프로젝트 권한

Visual SourceSafe 관리자 프로그램에서 설정하는 Visual SourceSafe 사용자 권한 및 할당은 Visual SourceSafe 데이터베이스 폴더의 Windows 공유 권한과 독립적입니다. 특정 Visual SourceSafe 프로젝트나 개별 Visual SourceSafe 사용자에 대한 권한과 할당을 설정할 수 있지만 모든 Visual SourceSafe 사용자에게는 Visual SourceSafe 데이터베이스 폴더에 대해 동일한 권한이 부여되어야 합니다. 따라서 Visual SourceSafe 관리자 프로그램을 사용하여 지정된 프로젝트 수준의 권한에 관계없이 모든 Visual SourceSafe 사용자가 공유 폴더에 액세스하고 모든 Visual SourceSafe 데이터를 완전히 제어할 수 있습니다.

Team Foundation에서 사용자별 작업 권한과 프로젝트 수준의 액세스 권한은 Windows 사용자 계정과 연결되어 있습니다. 사용자 인증은 Internet Information Server에서 안전하게 수행됩니다. SQL Server 데이터베이스에 별도로 액세스하는 권한은 소스 제어 작업을 수행하는 개별 사용자에게 부여될 필요가 없습니다. 이에 따라 생성된 Team Foundation 보안 인프라는 강력하고 안전하며 관리하기에 쉽습니다.

안정성

Visual SourceSafe에 서버 구성 요소가 없으므로 클라이언트에서 데이터베이스로의 데이터 전송이 포함된 작업은 트랜잭션으로 수행되지 않습니다. 따라서 문제가 발생하는 경우 작업을 롤백할 수 없습니다. 쓰기 작업 중에 드물게 네트워크 연결이 끊어지는 등의 문제가 발생하는 경우에는 영향을 받는 파일의 무결성이 손상되고 정보가 손실될 수 있습니다.

Team Foundation은 네트워크 연결 문제의 영향을 받지 않는 저장 프로시저를 통해 데이터베이스 안에서 쓰기 작업이 수행되는 클라이언트-서버 응용 프로그램입니다. 또한 특정 작업은 트랜잭션을 사용하여 수행되므로 오류가 발생하는 경우 롤백될 수 있습니다. 이러한 아키텍처 덕분에 소스 파일이 모르는 사이에 손상되지 않으며, 종속된 변경 내용이 포함된 파일 그룹이 제대로 테스트된 변경 집합으로 소스 제어 서버에 동시에 모두 커밋됩니다.

확장성

Team Foundation에서는 2000명 이하의 사용자로 구성된 팀을 지원하지만 Visual SourceSafe에서는 20명 이하로 구성된 팀으로 작업하는 것이 좋습니다. Team Foundation 서버는 SQL Server 데이터베이스에서 허용하는 규모(테라바이트)에 따라 사용 중인 하드웨어에서 지원하는 크기만큼의 데이터를 포함할 수 있지만 Visual SourceSafe 데이터베이스에 권장되는 크기 제한은 4GB입니다.

기능 차이점

변경 집합

개념적으로 Visual SourceSafe 데이터베이스와 Team Foundation 소스 제어 서버의 내부 구조는 유사합니다. 이러한 데이터베이스와 서버는 모두 계층적으로 구성되어 있습니다. 폴더에는 파일이 포함되고, 파일은 숫자와 만든 날짜/시간으로 식별되는 버전으로 구성됩니다.

Team Foundation은 변경 집합이라는 새로운 개념을 제공합니다. Visual SourceSafe에는 이 개념이 없습니다. 변경 집합은 Team Foundation에서 단일 체크 인 작업과 관련된 모든 정보를 저장하는 논리 컨테이너입니다. 이러한 정보에는 파일 및 폴더 수정 버전, 관련된 작업 항목에 대한 링크, 체크 인 메모, 체크 인 설명, 변경 내용을 전송한 사용자 등이 포함됩니다. 자세한 내용은 버전 제어 변경 집합 사용을 참조하십시오.

공유 및 고정

Team Foundation에는 Visual SourceSafe의 공유 또는 고정 기능에 해당하는 명령이 없습니다. Visual SourceSafe 프로젝트를 Team Foundation으로 마이그레이션하면 Visual SourceSafe 데이터베이스의 고정 기능이 레이블로 바뀝니다.

Team Foundation에 기록이 저장되는 방식의 차이점

Visual SourceSafe와 Team Foundation은 다음 작업의 기록을 저장하는 방식이 다릅니다.

  • 추가 및 만들기   Visual SourceSafe에서 파일이나 폴더를 추가하면 해당 파일뿐만 아니라 부모 버전도 함께 만들어집니다. 부모 기록에서 해당 작업은 "추가"로 기록되고 파일 기록에서 해당 작업은 "만들기"로 기록됩니다. Team Foundation에서 파일이나 폴더를 추가하면 "추가" 작업으로 파일이나 폴더 자체의 버전만 만들어집니다. 이 작업으로 부모의 버전은 만들어지지 않습니다.

  • 이름 바꾸기, 삭제 및 삭제 취소   Visual SourceSafe에서 이러한 작업은 새 버전의 부모를 만듭니다. 그러나 Team Foundation에서는 항목 자체의 새 버전을 만듭니다.

  • 이동   Visual SourceSafe에서 폴더를 이동하면 소스 및 대상 부모 폴더의 새 버전이 만들어지며 부모에서 또는 부모로 폴더를 이동하는 작업이 각 부모에 기록됩니다. 폴더 F의 버전은 만들어지지 않습니다. 예를 들어, 폴더 F를 소스 S에서 대상 D로 이동하면 D의 새 버전이 "S에서 $F 이동" 작업으로 만들어지고 S의 새 버전이 "D로 $F 이동" 작업으로 만들어집니다. Team Foundation에서는 F의 새 버전만 "이름 바꾸기" 작업으로 만들어집니다.

체크 아웃과 체크 인에서의 차이점

Visual SourceSafe에서는 파일을 편집하고 있는 경우에만 명시적인 체크 아웃과 체크 인을 수행해야 합니다. Team Foundation에서는 모든 작업에 명시적인 체크 아웃과 체크 인이 필요합니다.

Team Foundation과 다르게 작동하는 기능

기본적으로 Team Foundation은 파일을 체크 아웃할 때 Get 작업을 자동으로 수행하지 않습니다.

Team Foundation에서는 여러 사용자가 동일한 항목을 체크 아웃하고 동시에 변경할 수 있습니다. Visual SourceSafe에서는 체크 아웃이 기본적으로 단독으로 이루어집니다. 그러나 Team Foundation에서는 다른 사용자가 파일을 체크 아웃하거나 변경 내용을 체크 인하는 것을 방지하기 위해 파일을 잠글 수 있습니다. 자세한 내용은 잠금 형식 이해을를 참조하십시오.

분기 및 병합   Visual SourceSafe에서는 파일이나 폴더의 두 분기 간 병합 기록을 저장하지 않기 때문에 Visual SourceSafe는 분기와 병합을 매우 기본적인 수준으로 지원합니다. 그러나 Team Foundation 버전 제어는 병합 기록을 지원합니다. 병합 기록이 없으면 Visual SourceSafe에서 기본 버전이 없는(baseless) 병합을 수행해야 합니다.

체크 아웃 시 최신 버전 가져오기

Visual SourceSafe에서 파일을 체크 아웃하면 Visual SourceSafe에서 소스 제어로부터 최신 버전의 파일을 가져옵니다. Team Foundation 버전 제어에서 두 가지 방식으로 체크 아웃 동작을 구성할 수 있습니다. 체크 아웃 동작을 Visual SourceSafe와 같게 설정하려는 경우에는 체크 아웃할 때 최신 버전의 항목을 가져오도록 체크 아웃 설정을 구성할 수 있습니다. 자세한 내용은 방법: 체크 아웃 설정 구성을 참조하십시오.

서버에서 최신 버전을 가져오지 않고 파일의 로컬 복사본을 체크 아웃한 상태로 표시하도록 체크 아웃 동작을 구성할 수도 있습니다. 이 체크 아웃 동작은 가져오기 작업을 수행하여 파일 집합을 가져오는 경우에 유용합니다. 일반적으로 컴퓨터의 소스 파일 구성은 특정 파일(Team Foundation 버전 제어에서 함께 작동하는 것으로 알려진 파일)의 스냅숏 시점을 나타냅니다. 그러므로 함께 빌드하고 테스트할 수 있습니다.

작업 영역에서 작업하는 개발자는 다른 개발자가 변경하는 내용으로부터 격리됩니다. 적절하게 가져오기 작업을 수행하면 다른 개발자가 변경한 내용을 적용할 시기를 제어할 수 있습니다. 가져오기 작업을 수행할 경우 이상적으로는 한두 개 파일의 구성이 아니라 소스의 전체 구성을 업데이트해야 합니다. 일반적으로 한 파일의 변경 내용은 다른 파일에 대한 해당 변경 내용에 따라 달라지기 때문입니다. 이 체크 아웃 동작을 사용하면 항상 빌드 및 테스트할 수 있는 소스의 스냅숏을 일관되게 유지할 수 있습니다.

변경 내용을 체크 인할 때 Team Foundation에서 변경 내용을 서버 버전에서 변경한 내용과 병합합니다. 충돌이 검색되면 충돌 해결 대화 상자가 나타납니다.

Visual SourceSafe에 없는 Team Foundation 기능

Team Foundation에 없는 Visual SourceSafe 기능

  • 공유

  • 고정

  • 보관 및 복원

  • 키워드 확장

자세한 내용은 다음 단원을 참조하십시오.

참고 항목

작업

연습: Visual SourceSafe에서 Team Foundation으로 마이그레이션 준비

연습: Visual SourceSafe에서 Team Foundation으로 마이그레이션