2013-02-05 2 views
2

저는 Visual Studio 2010 Express를 잠시 사용하고 꽤 오랜 기간 동안 광범위한 프로젝트를 수행해 왔습니다. 50-60 개의 파일과 수천 줄의 코드가 생겨나 기 때문에 프로젝트를 더 쉽게 업데이트하고 모든 장치간에 액세스 할 수 있도록 모든 소스 제어를 수행하기로 결정했습니다.git 및 visual studio 2010 express

나는 git을 사용하기에 앞서 편안하지만, 지금 내가 커밋하여 bitbucket.org의 원격 저장소에 넣었을 때 .vcxproj 파일이 올바른 파일 구조를 유지하면서 발견되었다. 또한 다른 컴퓨터에 가져 왔을 때/lib 디렉토리가 잘못된 디렉토리에서 찾을 것이라는 것을 의미하는 푸시 된 장치의 include 및 lib 디렉토리를 유지했습니다. 즉, 내가 가져올 때마다 모든 것을 수정해야한다는 것을 의미합니다. 푸시.

내 질문에 어쨌든 내가 해결책을 폴더 설정을 유지하지만 저장소 및 lib 디렉토리 설정과 같은 저장소에 파일을 밀어 수 있습니까?

편집

:

은 몇 가지 조사 후, 나는 프로젝트에 추가 할 수있는 파일입니다 Visual Studio에서 이러한 소위 속성 시트에보고했다. 설정 한 설정은 프로젝트의 설정보다 우선하지만, 프로젝트에 개별 속성 파일을 추가 한 다음 .sln 파일과 .props없이 다양한 .vcxproj 파일을 푸시하면 문제가 발생합니다. 파일을 만든 다음 다른 누군가가 저장소에서 복제하면 분명히 해당 소품 파일이 필요하기 때문에 열리지 않습니다.

원격 저장소의 기본 .props 파일은 복제 할 때 더 이상 추적되지 않으며 사용자가 직접 편집 할 수 있습니다. 나는이 일이 일어날 수 있도록 충분히 생각하지 않습니다. 아무도 아이디어가 있니?

+0

나는 그것이 가능하지 않다는 것을 두려워합니다. 아마 당신은 pre-commit 후크에있는 불쾌한 파일에 이런 것들이없는 버전을 설치할 수 있습니까? 아니면 로컬 설정을'include '(C로 설정)하고, 버전 관리가 안된 파일을 각 사용자가 설정할 수 있도록 설정하는 방법이 있을까요? – vonbrand

+0

질문에 대답하지 않지만 CMake를 사용하여 비주얼 스튜디오 프로젝트를 생성하고 싶습니다. CMake는 많은 장점을 가지고 있습니다. 또한 생성 된 Visual Studio 프로젝트에서 소스 파일을 정렬하기 위해 만든 cmake 코드를 보여 드리고 싶습니다. https://github.com/Andrepuel/ThirdParty.cmake#source-group-tree –

답변

1

내가 당신의 문제가 정확히 무엇인지 잘 모르겠지만, 여기 내 이해의 :

  1. 프로젝트 파일은 절대 경로를 포함 (예를 들어, "C : \의 Myproj \ 포함"). 이를 상대 경로 (예 : ". \ include")로 바꿉니다. "$ (SolutionDir)"변수가 도움이됩니다. 솔루션 파일이 C : \ myproj \ myproj.sln 인 경우 "$ (SolutionDir) include"는 "C : \ myproj \ include"와 같습니다. 프로젝트 등록 정보> 구성 등록 정보> C/C++ 및 링커에서 포함 및 라이브러리 디렉토리를 각각 변경할 수 있습니다.

  2. 프로젝트에 제 3 자 라이브러리 - 예 : 부스트가 필요하며 이는 프로젝트 외부에 있습니다 (예 : C : \ boost). 불행히도 Windows/VS에는 타사 라이브러리의 표준 위치가 없으므로 다음 중 하나를 수행 할 수 있습니다.

    • 프로젝트를 라이브러리에 포함하십시오. 이것은 작은 라이브러리에 대해서는 완벽하게 괜찮지 만, boost와 같은 것을 사용하고 싶지는 않습니다.이 라이브러리는 크고 광범위하게 사용되는 경향이 있습니다.
    • 모든 기기가 동일한 위치에 이러한 라이브러리를 설정하도록해야합니다 (예 : C : \ sdk
    • 프로젝트에서 $ (SDK_DIR)과 같은 환경 변수를 사용하면 모든 장치가이 환경 변수를 설정해야합니다.

이 도움이된다면 알려주세요.

+0

실제로 둘 다 1 2. 프로젝트에 다른 프로젝트에 필요한 일부 파일이 있지만 문제점 ($ SolutionDir)이 다른 시스템의 다른 디렉토리이지만 관련 값은이 시스템과 동일하게 유지됩니다. 문제 2 들어, 내가 필요하지만, 부스트 심각하게 각 컴퓨터에 동일한 경로 이름에 위치하지 않도록하고 싶습니다. – FatalCatharsis

0

git의 얼룩과 깨끗한 필터는 무엇을하고 있습니다. 당신은 청소를위한 스크립트를 작성해야하지만, 아마 일을 잘 할 sed'll, 당신은 진짜 XML 파싱이 필요하지 않습니다.