2012-02-12 5 views
1

프로젝트 및 잠재적으로 기존 프로젝트를 SVN 버전 제어로 설정하려고합니다. 나는 svn 서버에 대해 uberSVN을 사용하고 있습니다. Visual Studio 용 AnkhSVN을 설치했습니다.Visual Studio 및 SVN에 대한 올바른 설정

현재 내가 사용하고있는 팀은 Visual Source Safe를 사용하고 있으며 우리가 가진 문제 중 하나는 누군가가 DLL에 대한 참조를 추가하고 프로젝트 파일을 예상대로 수정하지만 우리의 경로가 다른 팀 구성원 (XP 상자, 7, 당신은 아이디어를 얻는다). 내가 원했던 것은 체크인/체크 아웃 할 때 프로젝트 파일을 무시하고 다른 사람들을위한 참조를 엉망으로 만들지 않기 위함이었다.

SVN이 플러그인 내에서 이러한 파일을 무시하도록하는 방법이 있습니까? 이것의 부작용 중 하나는 사람이 프로젝트 파일을 수정하면서 프로젝트에 새 파일이 추가되었는지 알 수 없다는 것입니다. 모든 사람에게 "이봐,이 파일을 프로젝트에 수동으로 추가해야한다"는 것 말고는 더 깨끗한 방법이 있습니까?

답변

1

개발 작업을 위해 가상 경로를 사용해야합니다. 그런 방식으로 각 팀 구성원은 실제 위치에서 작업 관련 파일을 유지할 수 있지만 가상 경로 (도구로 볼 수있는 파일은 항상 동일합니다.)

예를 들어, 팀은 모두 Q:\에서 작업합니다. . 나는 주어진 프로젝트에서 작업 할 때 물리적 경로 프로젝트 이름 부분은 프로젝트에 따라 C:\Work\<project_name> 아래, 나는 Q지도 : 내가 전환해야 할 때 올바른 실제 경로에 가상 경로가

subst q: c:\work\project_name 

를 사용하여 \ , 나는 비슷한 명령을 실행합니다.이 방법은 다른 컴퓨터에서 다른 경로에 대해 걱정할 필요가 없습니다. 이것은 팀 전체에 매우 효과적이었고 당신이 설명하는 대부분의 문제를 제거했습니다. 이자형. 프로젝트 관련 파일을 다룰 때는 물리적 경로가 아닌 항상 가상 경로 (Q :)를 사용하는 것이 유일한 단점입니다. 팀에겐 익숙해지기까지 약 일주일이 걸렸습니다. 그 이후에는 더 이상 문제가 없었습니다.

프로젝트 파일은 프로젝트의 중요한 부분이므로 소스 제어 도구에서 프로젝트 파일을 무시하면 결국 문제가 발생할 수 있습니다. 나는 당신이 그것을 할 수 있다고하더라도 당신이하지 않는 것이 좋습니다.

편집 : 당신이 다른 컴퓨터에서 서로 다른 물리적 폴더에 DLL-의 경우 , 최선의 선택은 알려진 위치에 그 DLL-S (및 종속성을) 복사하는 것입니다. 컴파일러가 찾으면 거기에서 실행할 수 없습니다.

이 알려진 위치는 가상 경로 또는 일반적인 실제 경로에있을 수 있습니다 (여러 프로젝트에 동일한 DLL이 필요한 경우). Dependency Walker을 사용하여 네이티브 DLL에 필요한 종속성을 확인하고 .NET DLL에 대해 Reflector을 결정할 수 있습니다.

DLL-s의 크기/개수가 너무 커서 복사본을 만들 수없는 경우 변경 내용을 커밋 할 때 특정 버전의 파일을 무시하도록 AnkhSVN에 지시 할 수 있습니다. 파일을 마우스 오른쪽 버튼으로 클릭하고 Subversion> 변경 목록으로 이동> 커밋 무시를 선택합니다. 이 후 파일은 선택되지 않은 커밋 대화 상자에 나타나지만 수동으로 선택하면 커밋 할 수 있습니다.

+0

우리의 윈도우 박스 사람들이 프로그램 파일 (x86)을 가리키고 우리 XP 사람들이 특정 DLL을 위해 프로그램 파일을 가리키고 있기 때문에 이것은 잘 작동하지 않습니다. – Justin

+0

@ Justin : DLL을 알려진 위치로 복사하거나 변경 내용을 커밋 할 때 AnkhSVN이 특정 파일을 선택하지 않았 음을 알릴 수 있습니다. – xxbbcc

4

DLL을 링크하기 전에 VS 솔루션 폴더 내의 폴더에 복사하면 프로젝트 링크가 상대적인 절대적이지 않을 것입니다. 따라서 DLL과 업데이트 된 VS 프로젝트를 구성 관리로 확인하면 모든 사람들이이를 공유 할 수 있습니다.

+2

우리는 이것을 또한 ... 아주 잘 작동합니다. 폴더 개발자가 사용하는 것에 완전히 의존합니다. –