답변:
다른 답변에서 솔루션 파일이 유용하고 공식 빌드에 사용되지 않더라도 커밋되어야한다는 것이 분명하다고 생각합니다. 정의 / 선언으로 이동과 같은 Visual Studio 기능을 사용하는 모든 사용자에게 편리합니다.
기본적으로 절대 경로 또는 기타 시스템 특정 아티팩트는 포함하지 않습니다. (안타깝게도 일부 추가 기능 도구 (예 : AMD CodeAnalyst)는이 속성을 제대로 유지하지 못합니다.) 프로젝트 파일 (C ++ 및 C # 모두)에서 상대 경로를 사용하는 데주의를 기울이면 해당 도구는 시스템과 무관합니다. 너무.
아마도 더 유용한 질문은 다음과 같습니다. 어떤 파일을 제외해야합니까? 내 VS 2008 프로젝트에 대한 내 .gitignore 파일의 내용은 다음과 같습니다.
*.suo
*.user
*.ncb
Debug/
Release/
CodeAnalyst/
(마지막 항목은 AMD CodeAnalyst 프로파일 러용입니다.)
VS 2010의 경우 다음도 제외해야합니다.
ipch/
*.sdf
*.opensdf
당신은 확실히 그것을 가져야합니다. 다른 사람들이 언급 한 이유 외에도 전체 프로젝트의 한 단계 빌드를 가능하게하는 것이 필요합니다.
나는 일반적으로 솔루션 파일을 체크인해야한다는 데 동의하지만, 내가 일하는 회사에서 다른 일을했습니다. 우리는 상당히 큰 저장소를 가지고 있으며 개발자는 때때로 시스템의 다른 부분에서 작업합니다. 우리가 일하는 방식을 지원하기 위해 우리는 하나의 큰 솔루션 파일 또는 여러 개의 작은 파일을 가질 것입니다. 둘 다 몇 가지 단점이 있으며 개발자 측에서 수동 작업이 필요합니다. 이를 피하기 위해 우리는 모든 것을 처리하는 플러그인을 만들었습니다.
플러그인을 사용하면 각 개발자가 저장소에서 관련 프로젝트를 선택하기 만하면 작업 할 소스 트리의 하위 집합을 확인할 수 있습니다. 그런 다음 플러그인은 솔루션 파일을 생성하고 주어진 솔루션에 대해 즉시 프로젝트 파일을 수정합니다. 또한 참조를 처리합니다. 즉, 개발자가해야 할 일은 적절한 프로젝트를 선택하고 필요한 파일을 생성 / 수정하는 것입니다. 이를 통해 회사 표준을 보장하기 위해 다양한 기타 설정을 사용자 지정할 수 있습니다.
또한 플러그인을 사용하여 다양한 체크인 정책을 지원하므로 일반적으로 사용자가 결함이 있거나 규정을 준수하지 않는 코드를 저장소에 제출하는 것을 방지합니다.
예, 커밋해야 할 사항은 다음과 같습니다.
커밋 하지 말아야 할 사항 은 다음과 같습니다.
다른 자동 생성 파일과 관련하여 별도의 스레드가 있습니다.
예, 항상 .sln 파일을 포함하려고합니다. 여기에는 솔루션에있는 모든 프로젝트에 대한 링크가 포함됩니다.
우리는 일반적으로 모든 솔루션 파일을 솔루션 디렉토리에 저장합니다. 이렇게하면 솔루션을 코드에서 약간 분리하고 작업해야하는 프로젝트를 선택하는 것이 더 쉽습니다.
.slns는 tfs에서 문제 가 없었던 유일한 것입니다 !