다음을 통해 공유


SDM 문서에 대한 동시 체크 아웃 및 변경

업데이트: 2007년 11월

분산 시스템 디자이너에서는 .sdm 파일 및 분산 시스템 다이어그램 파일(.ad, .sd, .dd 및 .ldd)을 포함하는 SDM 문서에 포함된 메타데이터의 구조와 복잡도로 인해 이러한 SDM 문서를 병합하거나 소스 코드 제어에서 동시에 체크 아웃하지 않는 것이 좋습니다. Visual Studio 버전의 소스 코드 제어(Team Foundation 또는 Visual SourceSafe)를 사용하는 경우에는 기본적으로 단독 체크 아웃이 사용되므로 한 번에 한 명의 사용자만 파일을 체크 아웃할 수 있습니다.

참고:

구현을 지원하는 응용 프로그램이 응용 프로그램 다이어그램에서 구현되면 해당 프로젝트가 생성되어 솔루션에 표시됩니다. 구현된 응용 프로그램에 대한 SDM 정의는 .sdm 파일에 저장되고 해당 프로젝트와 함께 포함됩니다. 자세한 내용은 SDM 개요SDM 문서 간의 관계를 참조하십시오.

응용 프로그램 다이어그램을 병합하면 안 됩니다. 응용 프로그램이 구현되면 코드는 해당 응용 프로그램의 마스터 정의가 되고 다이어그램 및 코드에 대한 변경 내용이 서로 동기화됩니다. 응용 프로그램 코드 파일 및 구성 파일은 SDM 정의에 대한 소스이므로 코드 파일 또는 구성 파일을 병합한 결과에 따라 .sdm 파일의 최종 SDM 정의 버전이 결정됩니다.

참고:

Team Foundation에서 보류 중인 변경 내용을 보류하거나 따로 변경할 수 있습니다. 그러나 이러한 작업을 수행하면 SDM 문서를 병합해야 하므로 수행하지 않는 것이 좋습니다. 예를 들어, 구성 파일에서 설정 또는 제약 조건을 변경하고 해당 변경을 보류한 다음 해당 설정 및 제약 조건을 다르게 변경하는 경우에는 SDM 문서를 병합해야 합니다. 자세한 내용은 버전 제어 보류 집합 사용을 참조하십시오.

응용 프로그램 다이어그램이 열리거나 닫힐 때마다 프로젝트 코드에 대한 관련 변경이 .sdm 파일 및 응용 프로그램 다이어그램과 동기화됩니다. 따라서, 응용 프로그램 다이어그램 파일(.ad) 또는 .sdm 파일이 코드와 동기화되지 않는 경우 응용 프로그램 다이어그램을 닫았다가 다시 열어 다시 동기화할 수 있습니다. 자세한 내용은 SDM 문서 간 동기화를 참조하십시오.

참고:

.sdm 파일에만 저장되는 SDM 정보 또는 프레젠테이션 데이터와 같이 다른 소스에서 다시 만들 수 없는 SDM 문서의 데이터는 문서가 삭제되거나 병합 작업으로 인해 정보가 손실될 경우 영구히 손실됩니다. 이 시나리오에서만 다이어그램 또는 .sdm 파일을 병합하지 않을 경우 정보가 손실될 수 있습니다. 따라서 .sdm 파일에만 저장되는 정의를 동시에 사용하거나 병합하지 않는 것이 좋습니다. 예를 들어, ASP.NET 응용 프로그램의 웹 콘텐츠 끝점에 대한 SDM 정보를 포함하는 .sdm 파일이 삭제된 경우 새 .sdm 파일이 다시 생성될 때 이러한 웹 콘텐츠 끝점은 리버스 엔지니어링되지 않습니다. 자세한 내용은 응용 프로그램 다이어그램 문제 해결을 참조하십시오.

응용 프로그램 프로젝트 파일에 대한 동시 체크 아웃 및 변경

권장되는 방법은 아니지만 팀에서 프로젝트 파일을 동시에 변경하는 경우 공유 체크 아웃을 사용할 수 있습니다. 그러나, 특정 시나리오에서는 프로젝트 파일을 체크 인할 때 이러한 변경을 병합해야 할 수 있습니다. 그러면 병합 충돌이 발생하여 이를 해결해야 할 수 있습니다. Team Foundation을 사용하는 경우 자세한 내용은 방법: 체크 아웃 설정 구성을 참조하십시오.

그런 일반적인 시나리오 중 하나로 여러 개발자가 공유 프로젝트에서 서로 다른 소스 코드 파일로 작업하는 경우가 있습니다. 이 프로젝트는 여러 솔루션에서 공유될 수 있으며 각 솔루션은 자체 응용 프로그램 다이어그램을 포함할 수 있습니다. 솔루션에 응용 프로그램 다이어그램이 포함되어 있고 프로젝트에 .sdm 파일이 포함되어 있는 경우 프로젝트의 코드 파일 또는 구성 파일을 변경 또는 동시 변경하려면 .sdm 파일을 업데이트해야 할 수 있습니다. 따라서 프로젝트가 체크 인될 때 .sdm 파일에 대한 동시 변경을 병합하거나 .sdm 파일에 대한 변경 집합 중 하나를 삭제해야 합니다.

예를 들어, 두 명의 개발자가 동일한 솔루션에서 작업한다고 가정합니다. 첫 번째 개발자는 ASP.NET 응용 프로그램에 대한 웹 서비스 클래스 파일에서 작업하고 응용 프로그램 프로젝트를 포함하는 솔루션을 체크 아웃하려고 합니다. 이 개발자는 응용 프로그램 다이어그램이나 솔루션에 존재하는 다른 다이어그램을 열지 않고 프로젝트 코드로 작업할 수 있습니다. 그러나 코드 파일에 대한 변경은 이러한 다이어그램에 여전히 영향을 줄 수 있습니다. 이 개발자가 응용 프로그램 다이어그램을 열면 동기화하는 데 필요한 다른 프로젝트 파일과 함께 다이어그램을 체크 아웃할지를 묻는 메시지가 표시됩니다.

참고:

개발자가 체크 아웃을 취소하거나 어떠한 이유로 다이어그램을 체크 아웃할 수 없는 경우 다이어그램이 잠깁니다. 그렇더라도 개발자는 코드를 계속해서 변경할 수 있습니다. 자세한 내용은 응용 프로그램 다이어그램 문제 해결을 참조하십시오.

두 번째 개발자는 동일한 솔루션에서 동일한 프로젝트로 작업하고 사용할 특정 소스 코드 제어 솔루션에 따라 해당 프로젝트를 체크 아웃한다고 가정합니다. 그러나 두 번째 개발자는 동일한 응용 프로그램에 있는 다른 웹 서비스에 대한 클래스 파일에서 작업합니다. 첫 번째 개발자가 다이어그램을 이미 체크 아웃했기 때문에 두 번째 개발자는 응용 프로그램 다이어그램에서 변경 내용이 미치는 영향을 확인하려는 경우 다이어그램을 읽기 전용 상태로만 볼 수 있습니다. 두 번째 개발자는 코드 편집기를 통해 코드를 계속해서 변경할 수 있습니다.

두 개발자는 변경을 마치면 소스 코드 제어에 체크 인합니다. 이때 동시에 체크 아웃되는 파일의 병합 충돌이 해결되어야 합니다. 대부분의 경우 상대방의 .sdm 파일 변경 중 일부가 선택되고 응용 프로그램 다이어그램이 병합된 코드에 따라 .sdm 파일과 동기화됩니다. 그러나 두 번째 개발자가 다른 웹 서비스 클래스 파일에서 작업하는 이 시나리오에서는 응용 프로그램 다이어그램이 코드와 동기화된 다음 .sdm 파일을 동기화하므로 다른 개발자의 .sdm 파일을 안전하게 사용할 수 있습니다.

자세한 내용은 방법: SDM 문서에서 충돌 해결을 참조하십시오.

참고 항목

개념

구현을 위한 분산 시스템 솔루션 분할

기타 리소스

Team Foundation

팀 환경의 분산 시스템 디자이너