파일 차이점 및 충돌 형식 이해
업데이트: 2007년 11월
두 명 이상이 동일한 프로젝트 작업을 수행하는 소프트웨어 개발 팀에서는 파일 차이점으로 인해 충돌이 발생하는 경우가 많습니다. Team Foundation 버전 제어를 사용하면 이러한 충돌을 해결할 수 있습니다. 충돌은 다음 작업을 수행하는 동안 발생할 수 있습니다.
분기 간 변경 내용 병합
작업 영역으로 파일 가져오기
새 버전의 파일 체크 인
충돌 형식
이 항목에서는 다음과 같은 충돌 형식에 대해 설명합니다.
버전 충돌
파일 이름 충돌
로컬 덮어쓰기 충돌
버전 충돌
버전 충돌은 Team Foundation 버전 제어에서 체크 인, 가져오기 또는 병합 작업을 수행하는 동안 발생할 수 있습니다. 각각의 경우에 한 항목이 서로 다른 경로에서 변경될 때 충돌이 발생합니다.
체크 인 두 사용자가 최신 버전의 파일을 체크 아웃합니다. 첫 번째 사용자가 변경 내용을 체크 인하면 새 버전의 파일이 만들어집니다. 두 번째 사용자가 체크 인하려고 하면 버전 충돌이 발생합니다. 두 번째 사용자의 변경 내용은 최신 버전의 파일에서 변경되지 않았기 때문입니다.
가져오기 두 사용자가 최신 버전의 파일을 체크 아웃합니다. 첫 번째 사용자가 변경 내용을 체크 인하면 새 버전의 파일이 만들어집니다. 두 번째 사용자가 최신 버전 가져오기 작업을 수행하면 버전 충돌이 발생합니다. 최신 버전 가져오기 작업은 작업 영역에서 체크 아웃된 파일을 업데이트하려고 하기 때문입니다.
병합 분기된 파일은 두 분기에서 모두 변경됩니다. 사용자가 한 분기의 변경 내용을 다른 분기에 병합하려고 합니다. 파일이 두 분기에서 모두 수정되었기 때문에 버전 충돌이 발생합니다.
버전 충돌 해결에는 변경 내용을 병합하거나 변경 내용 집합을 선택하는 작업이 포함됩니다. 자세한 내용은 방법: 두 파일 간의 충돌 해결을 참조하십시오.
버전 충돌
로컬/소스 변경 |
서버/대상 변경 |
해결 옵션 (가져오기 또는 체크 인) |
해결 옵션 (병합) |
---|---|---|---|
편집 이름 바꾸기 삭제 취소 |
편집 이름 바꾸기 삭제 취소 |
내 변경 내용 병합(충돌이 없는 경우) 병합 도구에서 변경 내용 병합 내 로컬 변경 내용 취소 서버 변경 내용 취소 |
내 변경 내용 병합(충돌이 없는 경우) 병합 도구에서 변경 내용 병합 대상 분기의 변경 내용 유지 소스 분기에서 항목 복사. 이 옵션은 기본적으로 선택됩니다. |
|
삭제 |
파일을 복원하고 내 변경 내용 병합(충돌이 없는 경우) 파일을 복원하고 병합 도구에서 변경 내용 병합 내 로컬 변경 내용 취소 파일을 복원하고 내 변경 내용 유지 |
파일을 복원하고 내 변경 내용 병합(충돌이 없는 경우) 파일을 복원하고 병합 도구에서 변경 내용 병합 소스 분기의 변경 내용 취소 소스 분기에서 항목 복사 |
삭제 |
편집 이름 바꾸기 삭제 취소 |
내 로컬 변경 내용 취소 서버 변경 내용 취소 |
소스 분기의 변경 내용 취소 대상 분기에서 항목 삭제 |
|
삭제 |
내 로컬 변경 내용 취소 |
소스 분기의 변경 내용 취소 |
|
|
|
해당 충돌 건너뛰기. 해당 형식의 충돌에 대한 작업을 수행하지 않음을 나타냅니다. |
파일 이름 충돌
파일 이름 충돌은 Team Foundation 버전 제어에서 체크 인, 가져오기 또는 병합 작업을 수행하는 동안 발생할 수 있습니다. 세 경우 모두 두 개 이상의 항목이 소스 제어 서버에서 동일한 경로를 차지하려고 할 때 충돌이 발생합니다.
체크 인 두 사용자가 각각 같은 응용 프로그램에 파일을 추가합니다. 동시에 두 사용자가 새 파일에 대해 같은 이름을 선택합니다. 한 사용자가 자신의 파일을 체크 인합니다. 두 번째 사용자가 체크 인하려고 하면 파일 이름 충돌이 발생합니다.
가져오기 두 사용자가 응용 프로그램에 같은 이름으로 파일을 추가합니다. 한 사용자가 그 파일을 체크 인합니다. 두 번째 사용자가 최신 버전 가져오기 작업을 수행하려고 하면 파일 이름 충돌이 발생합니다. 두 번째 사용자가 파일을 추가한 경우 첫 번째 사용자 파일을 검색할 수 없기 때문에 충돌이 발생합니다.
병합 응용 프로그램이 분기된 다음 두 분기에서 모두 변경됩니다. 두 분기에서 동일한 이름의 파일이 추가됩니다. 사용자가 한 분기의 변경 내용을 다른 분기에 병합하려고 합니다. 파일이 대상 분기에 이미 추가된 경우 소스 분기에 추가된 파일을 분기할 수 없기 때문에 파일 이름 충돌이 발생합니다.
파일 이름 충돌은 서버 경로 네임스페이스에서 항목을 추가하거나 이동하는 모든 작업에서 발생할 수 있습니다. 추가, 이름 바꾸기, 분기, 삭제 취소 및 병합 등의 작업이 여기에 포함됩니다.
파일 이름 충돌을 해결하려면 소스 제어 서버 경로를 최종적으로 차지할 항목을 선택해야 합니다. 자세한 내용은 방법: 두 파일 간의 충돌 해결을 참조하십시오.
파일 이름 충돌
로컬/소스 변경 |
서버/대상 변경 |
해결 옵션(가져오기 또는 체크 인) |
해결 옵션(병합) |
---|---|---|---|
추가 분기 이름 바꾸기 삭제 취소 |
추가 분기 이름 바꾸기 삭제 취소 |
내 로컬 변경 내용 취소 충돌 무시 |
소스 분기의 변경 내용 취소 충돌 무시 |
|
|
|
해당 충돌 건너뛰기. 해당 형식의 충돌에 대한 작업을 수행하지 않음을 나타냅니다. 이 옵션은 기본적으로 선택됩니다. |
로컬 덮어쓰기 충돌
로컬 덮어쓰기 충돌은 Team Foundation 버전 제어에서 가져오기 작업을 수행하는 동안에만 발생합니다. 이러한 충돌은 가져오기 작업을 통해 작업 영역에서 쓸 수 있는 파일에 덮어쓰려고 하면 발생합니다. 기본적으로 가져오기 작업에서는 읽기 전용 파일만 대체합니다. 로컬 덮어쓰기 충돌 해결에는 파일을 덮어쓰는 작업이나 파일을 체크 아웃하고 변경 내용을 병합하는 작업이 포함됩니다.
쓸 수 있는 파일
로컬/소스 변경 |
서버/대상 변경 |
해결 옵션(가져오기 또는 체크 인) |
해결 옵션(병합) |
---|---|---|---|
해당 사항 없음 |
해당 사항 없음 |
로컬 파일/폴더 덮어쓰기 충돌 무시 |
해당 사항 없음 |
|
|
|
해당 충돌 건너뛰기. 해당 형식의 충돌에 대한 작업을 수행하지 않음을 나타냅니다. 이 옵션은 기본적으로 선택됩니다. |
참고: |
---|
해결하는 데 병합 도구가 필요한 버전 충돌을 해결할 때는 선택한 충돌 해결 대화 상자를 사용할 수 없습니다. 이 대화 상자에는 병합 도구에서 변경 내용을 병합하는 옵션이 없습니다. 또한 내 변경 내용 병합을 선택한 경우 내부 내용 충돌이 발생하면 병합 도구를 호출할 수 없습니다. 대신 일부 파일을 개별적으로 해결해야 함을 설명하는 해결되지 않은 충돌 대화 상자가 나타납니다. 파일 하나만 해결할 수 없는 경우에는 대화 상자에 파일 이름이 포함되고, 해결되지 않는 파일이 두 개 이상인 경우에는 대화 상자에 파일 수가 포함됩니다. |
다음은 비교 옵션입니다.
충돌 형식 |
소스 변경 |
비교 옵션(가져오기 또는 체크 인) |
비교 옵션(병합) |
---|---|---|---|
버전 |
편집 이름 바꾸기 삭제 취소 |
로컬 파일과 서버 파일 로컬 파일과 원본 파일 서버 파일과 원본 파일 |
소스 파일과 대상 파일 소스 파일과 기본 파일 대상 파일과 기본 파일 |
|
|
로컬 파일과 삭제된 파일 로컬 파일과 원본 파일 삭제된 파일과 원본 파일 |
소스 파일과 삭제된 파일 소스 파일과 기본 파일 삭제된 파일과 기본 파일 |
|
삭제 |
원본 파일과 서버 파일 |
삭제된 파일과 대상 파일 |
|
|
해당 사항 없음 |
해당 사항 없음 |
파일 이름 충돌 |
추가 분기 이름 바꾸기 삭제 취소 |
로컬 파일과 서버 파일 |
소스 파일과 대상 파일 |
쓸 수 있는 파일 |
해당 사항 없음 |
해당 사항 없음 |
해당 사항 없음 |