전역 무시는 파일에만 적용되고 디렉토리에는 적용되지 않습니다. Subversion 구성 파일에서 .settings
을 무시한다고 가정하면 .settings
디렉토리는 무시하지만 .settings
이라는 파일 만 무시합니다. 그리고 파일이 아직 저장소에없는 경우에만 .settings
파일을 무시합니다.
기본적으로, 당신은 svn add *
또는 svn status
, 저장소에없는 모든 파일 말을, 그리고 당신의 무시 글로벌 은어가 svn status
에 표시 추가되지 않습니다 일치하는 경우. 그게 전부입니다.
비슷한 내용의 svn:ignore
디렉토리에 속성을 만들 수 있습니다. 그러나 svn:ignore
도 디렉토리를 무시합니다. 예를 들어 Maven 프로젝트가있는 경우 svn:ignore
= target
을 설정할 수 있으며 대상 폴더는보고되지 않습니다. 그러나 svn:ignore
은 하위 디렉토리가 아닌 속성이있는 디렉토리에서만 작동합니다.
그럼 어떻게 .settings
디렉토리를 무시할 수 있습니까? 간단한 : 당신은 그것을 체크 아웃하지 않습니다. 불행히도, Subversion에서이 작업을 수행하는 간단한 방법은 없습니다. 여기에 당신이 할 수있는 작업 :이 작업 디렉토리에있는 모든 폴더와 파일을 확인하지만 하위 디렉토리됩니다
$ svn checkout --depth=immediates http://server/src/myproj
. 콘 셸 및 BASH (당신이 shopt -s extglob
을 설정 한 경우)에서 :
$ svn update --set-depth=infinity !(.settings)
이것은 .settings
디렉토리 제외한 모든 디렉토리에 체크 아웃을 계속할 것이다.
또한이 작업을 수행 할 수 있습니다 : 그것은 이미 체크 아웃 된 후
$ svn update --set-depth=exclude .settings
가 .settings
디렉토리를 제거 할 수 있습니다. 이렇게하면 .settings
디렉토리가 저장소에서 제거되지 않지만 작업 디렉토리에서 .settings
디렉토리가 제거되고 작업 디렉토리 (저장소 URL 제외)의 svn diff
은 .settings
디렉토리의 아무 것도보고하지 않습니다.
하나의 큰 중요한 점은 내가 강조해야합니다 저장소에있는 파일의 사고 또한 방지에만 무시합니다. 그것은 누군가가 그것을 추가하는 것을 막지 않으며 일단 거기에 있으면 무시되지 않을 것입니다.
또한 전역 무시 설정은 모든 사람에게 적용되지 않습니다. 너 한테만. 사람들이 저장소에 추가해서는 안되는 파일을 추가하지 못하게하려면 this one과 같은 미리 커밋 된 후크가 필요합니다.
이 훅을 사용하면 특정 이름의 파일이나 디렉토리가 커밋되지 않도록 할 수 있으며 파일과 디렉토리의 속성이 설정되어 있는지 확인할 때도 사용할 수 있습니다. 예를 들어 사람들이 프로젝트의 .settings
디렉토리에 추가 할 수 없도록 할 수 있습니다. 또는 디렉터리의 svn:ignore
속성이 .settings
디렉터리를 무시하도록 설정되어 있는지 확인하십시오.
Windows에서'config' 파일은'% APPDATA % \ Subversion \ config'입니다. 예 : 'C : \ Documents and Settings \ Peter \ 응용 프로그램 데이터 \ Subversion \ config'. –