소스 제어에 .vcxproj.filter 파일을 추가해야합니까?


169

Visual Studio 2010 Beta 2를 평가하는 동안 변환 된 디렉토리에서 vcproj 파일이 vcxproj 파일 이되었습니다 . 폴더 구조에 대한 설명 (\ Source Files, \ Header Files 등)을 포함하는 것처럼 보이는 각 프로젝트와 함께 vcxproj.filter 파일 도 있습니다.

이러한 필터 파일을 사용자별로 유지해야합니까, 아니면 전체 dev 그룹에서 공유하고 SCC에 체크인해야한다고 생각하십니까?

나의 현재 생각은 그것들을 체크인하는 것이지만, 그렇게하지 않는 이유가 있는지, 또는 내가 확실히 체크인해야하는 좋은 이유가 있는지 궁금합니다.

다른 사람의 컴퓨터를 보면 폴더 구조가 일치하지만 논리적으로 항목을 재구성하고 싶을 때 이점이 있습니다.

답변:


59

이전 버전의 Visual Studio (최소 버전 6.0 및 2008)는 해당 정보를 자체 프로젝트 파일 (각각 .dsp 및 .vcproj 파일)에 저장하므로 SCC에 추가하는 것이 좋습니다.

SCC에이 .filter 파일을 포함시키지 않는 이유를 생각할 수 없습니다


난 너와 함께있어. 체크인했습니다. 감사합니다!
jschroedl 2009

111

우리는 의도적으로 .filter를 뽑았습니다. .vcxproj MSBuild 형식으로 변환 할 때 .vcproj 외부의 파일 정보. 그 이유 중 하나는 필터가 순전히 논리적 인 관점이며 다른 팀 구성원이 다른 관점을 원할 수도 있다는 점입니다. 다른 하나는 빌드가 프로젝트 파일의 타임 스탬프를 확인하도록 설정되어 있으며, 변경된 경우 다시 빌드를 트리거한다는 것입니다. 빌드 할 소스 파일이 다르거 나 설정이 다를 수 있기 때문입니다. 실제로 빌드 trigging과 같은 방식으로 배송했다면, 필터가 빌드에 영향을 미치지 않기 때문에 필터가 변경 되었기 때문에 단순히 재 빌드를 트리거하고 싶지 않다는 아이디어가있었습니다.


3
경우 자동 재 구축을 위해, 당신은 구축 모든 파일 (예 : 소스)를 변경 우리가 관리 할 수있는 또 다른 파일을 제외하고는 이제 아무것도 변경되었습니다.
gbjbaanb

3
즉, 두 파일을 마치 하나 인 것처럼 관리합니다. 다른 사람도 따로 취급하지 않을 것이라고 생각합니다. 좋은 생각이지만 실제 사례에 대한 약간의 생각은 먼 길을 갔을 것입니다 (WinSxS에 런타임을 배치하는 것과 같이)
gbjbaanb

9
나는 그들을 별도로 취급합니다. 내가 아는 한, 프로젝트 상태의 일부로 보존해야 할 쓰레기는 적을수록 좋습니다. 따라서 이것이 좋은 결정이라고 생각합니다.
rwallace

6
추상 / 논리 트리를 사용하지 않고 일반 파일 시스템 트리 만 보려면이 필터를 모두 비활성화 할 수 있습니까?
Johan Boulé

4
@JohanBoule : 전적으로 동의합니다! IDE에서 필터를 폐기했습니다. 이미 논리 트리 구조가 있으며 "파일 시스템"이라고합니다. 현재 많은 중복이 있습니다. 각 파일은 파일 시스템, 빌드 스크립트 (vcxproj), 필터 (vcxproj.filters), 소스 제어 및 다른 곳에 추가해야합니다. DRY 원칙을 위반합니다. 다행히도 필터 파일은 선택 사항 인 것 같습니다 . 당신은 그들을 삭제하고 IDE에서 "모든 파일 표시"버튼을 사용할 수 있습니다. 그것이 기본값이 아닌 것이 유감입니다.
Yakov Galka

5

방금 Git을 사용하면 .filter 파일을 병합하기 위해 통합으로 처리하도록 표시하여 더 간단하게 만들 수 있음을 알았습니다. 그냥 라인을 추가하십시오 :

*.vcxproj.filters merge=union

.gitattributes 파일에.

자세한 내용은 병합 충돌 방지를 위해 .gitattributes 사용 을 참조하십시오.


언급 된 링크는이 .filters 파일에 gitattributes 파일에 언급 된 "union"이 있어야한다고 언급하지 않았습니다.
ollydbg23

2
그러나 그것은 무엇을 말 merge=union합니까? 다른 약속은 없습니다. 그 지식과 * .filter-files가 어떻게 보이는지에 대한 폭 넓은 아이디어를 통해 왜 merge=union그 파일에 좋은 아이디어 인지 쉽게 알 수 있습니다.
피터 슈나이더

1

그것은 당신이 사용하는 경우를 부가 할 수 없습니다 CMake와 같은 파일을 생성하는 (또는 이와 유사한 빌드 도구) *.sln, *.vcxproj, *.vcxproj.filters이 파일이 프로젝트 폴더 및 기타에 대한 전체 경로를 포함 할 수 있기 때문에, 등 만 컴퓨터의 특정 폴더 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.