Subversion 및 Visual Studio 프로젝트에 대한 모범 사례
저는 최근에 C와 Perl로 작성된 다양한 프로그램과 스크립트의 결합으로 구축 된 현재 시스템을 대체하는 데 사용될 대규모 시스템 계획의 일환으로 Visual Studio에서 다양한 C # 프로젝트 작업을 시작했습니다. 내가 지금 작업하고있는 프로젝트는 전복에 전념하기 때문에 임계 값에 도달했습니다. Visual Studio 프로젝트의 리포지토리에 커밋해야하는 것과 커밋해서는 안되는 것이 무엇인지 궁금합니다. 빌드 아티팩트이며 실제로 커밋 할 필요가없는 다양한 파일을 생성 할 것이라는 것을 알고 있으며 Visual Studio에서 SVN을 올바르게 사용하기위한 조언이있는 사람이 있는지 궁금합니다. 현재 Visual Studio 2010 베타와 함께 SVN 1.6 서버를 사용하고 있습니다. 모든 조언, 의견을 환영합니다.
Visual Studio 소스 제어에 다음 파일을 추가 할 수 있습니다.
- 솔루션 파일 (
*.sln
).- 프로젝트 파일 (예 :
*.csproj
,*.vbproj
files).- XML을 기반으로하는 애플리케이션 구성 파일은 Visual Studio 프로젝트의 런타임 동작을 제어하는 데 사용됩니다.
소스 제어에 추가 할 수없는 파일은 다음과 같습니다.
- 솔루션 사용자 옵션 파일 (
*.suo
).- 프로젝트 사용자 옵션 파일 (예
*.csproj.user
:*.vbproj.user
파일)- 웹 프로젝트의 가상 루트 위치를 제어하는 웹 정보 파일 (예 :
*.csproj.webinfo
,*.vbproj.webinfo
).- 예를 들어 출력 파일
*.dll
및*.exe
파일 을 빌드 하십시오.
Visual Studio 2008/2010 용 Subversion 소스 제어 플러그인 인 AnkhSVN을 사용하는 것이 좋습니다 .
이를 사용하여 솔루션, 프로젝트 및 소스의 초기 추가 및 커밋을 저장소에 수행 할 수 있으며 빌드 아티팩트를 추가하지 않습니다. 빌드에서 생성 된 것은 추가하지 않고 솔루션에서 참조하는 파일 만 추가합니다. 솔루션에없는 다른 비트와 조각이 있으면 나중에 추가 할 수 있습니다.
버전 제어에 다음 파일을 넣으십시오.
- .dsw (VS6 작업 공간)
- .dsp (VS6 프로젝트)
- .sln (VS 솔루션)
- . * proj (다양한 유형의 VS 프로젝트 파일)
- 물론 생성 한 소스 파일 및 기타 아티팩트
마십시오 하지 버전 제어에 다음 파일을 넣어 :
- .ncb (브라우징 또는 인텔리전스와 관련된 작업)
- .suo (창 배치 등과 같은 사용자 작업 공간 설정-제 생각에는)
- .user (중단 점 등과 같은 사용자 프로젝트 설정-제 생각에는)
또한 개체 파일, 실행 파일, 자동 생성 파일 (예 : 생성 될 수있는 헤더)을 넣지 마십시오.
실행 파일 및 기타 생성 된 파일의 경우 릴리스를 아카이브 할 수 있도록하려면 예외가있을 수 있습니다. 좋은 생각 일 수 있지만 소스 코드와는 조금 다르게 그리고 아마도 다른 위치에서 관리하고 싶을 것입니다. 이 경우 나중에 디버깅 할 수 있도록 .pdb 파일도 보관하십시오. 심볼 서버를 사용하여 보관 된 심볼을 저장할 수 있습니다 ( 심볼 서버 및 설명서 는 Windows 용 디버깅 도구 참조 ).
SVN에서 제외하는 VS 관련 파일 목록은 다음과 같습니다.
Ankh.Load
*.projdata
*.pdb
*.positions
*proj.user
*proj.*.user
*.ncb
*.suo
*.plg
*.opt
*.ilk
*.pch
*.idb
*.clw
*.aps
솔루션 수준 :
.sln
솔루션 파일 추가.suo
솔루션 사용자 옵션 파일 무시
프로젝트 수준 :
- add the
.csproj
,.vbproj
(and c++ proj?) files - ignore the
.csproj.user
,.vbproj.user
files - ignore the
bin
directory - ignore the
obj
directory - ignore any files/directories that get generated during runtime (ie. logs)
If you use and VS addins, they may generate files that also need ignoring (ie. ReSharper generates .resharper
and .resharper.user
files).
The ignore items can either be ignored explicitly by filename (ie. MyProject.csproj
), or by a wildcard pattern (ie. *.csproj.user
).
Once you have your ignores set up, checking out a clean copy of your source then building should then show no modifications (ie. no new unversioned files).
I would manually include all files that I think I shouldn't version control.
My global ignore pattern is:
.dll .pdb .exe .cache .webinfo .snk bin obj debug _Resharper .user resharper
In case you are using ignore list, SVN is case sensitive. So remember to ignore bin and Bin folders separately.
Also, I had a question.. why does it take lot of time some times to refresh the status icon? At times it gets very confusing.
See Mercurial .hgignore for Visual Studio 2008 projects for a Mercurial ignore list. I'm not familiar with the syntax of the SVN ignore list but this thread has a few good lists of what to ignore in Visual Studio.
참고URL : https://stackoverflow.com/questions/1732813/best-practices-for-subversion-and-visual-studio-projects
'Nice programing' 카테고리의 다른 글
java.sql에 해당하는 datetime? (0) | 2020.12.04 |
---|---|
MSVCP140.dll 누락 (0) | 2020.12.03 |
문자열에서 하위 시퀀스의 발생 수 찾기 (0) | 2020.12.03 |
JavaScript에서 init () 사용법은 무엇입니까? (0) | 2020.12.03 |
Mac의 터미널에서 Git 구문 강조 표시 활성화 (0) | 2020.12.03 |