질문 : Subversion에서 파일을 어떻게 무시합니까?
Subversion에서 파일을 어떻게 무시합니까?
또한 버전 관리가되지 않는 파일을 어떻게 찾습니까?
답변
(이 답변은 SVN 1.8 및 1.9의 동작과 일치하도록 업데이트되었습니다)
두 가지 질문이 있습니다.
파일을 무시로 표시:
"무시 된 파일"이란 파일이 "버전 없음"으로도 목록에 나타나지 않음을 의미합니다. SVN 클라이언트는 파일이 파일 시스템에 전혀 존재하지 않는 것처럼 가장합니다.
무시 된 파일은 "파일 패턴"으로 지정됩니다. 파일 패턴의 구문과 형식은 SVN의 온라인 설명서에 설명되어 있습니다. http://svnbook.red-bean.com/nightly/en/svn.advanced.props.special.ignore.html "Subversion의 파일 패턴".
버전 1.8 (2013 년 6 월) 이후 Subversion은 파일 패턴을 지정하는 세 가지 방법을 지원합니다. 예를 들어 요약하면 다음과 같습니다.
1 - 런타임 구성 영역 - "global-ignores" 옵션:
- 이것은 클라이언트 측 전용 설정이므로
global-ignores
목록은 다른 사용자와 공유되지 않으며 컴퓨터에서 체크 아웃 한 모든 저장소에 적용됩니다. - 이 설정은 런타임 구성 영역 파일에 정의됩니다.
- Windows (파일 기반)
C:\Users\{you}\AppData\Roaming\Subversion\config
- 윈도우 (레지스트리 기반) -
Software\Tigris.org\Subversion\Config\Miscellany\global-ignores
모두HKLM
및HKCU
. - Linux /
~/.subversion/config
- Windows (파일 기반)
2 - 파일이 아닌 디렉토리에 설정된 svn:ignore 속성:
- 이것은 저장소 내에 저장되므로 다른 사용자는 동일한 무시 파일을 갖게됩니다.
.gitignore
작동 방식과 유사합니다. svn:ignore
는 디렉토리에 적용되며 비 재귀 적이거나 상속됩니다. 파일 패턴과 일치하는 모든 파일 또는 상위 디렉토리의 바로 아래 하위 디렉토리는 제외됩니다.- SVN 1.8은 "상속 된 속성"이라는 개념을 추가하지만
svn:ignore
속성 자체는 비 직접 하위 디렉터리에서 무시됩니다.cd ~/myRepoRoot # Open an existing repo. echo "foo" > "ignoreThis.txt" # Create a file called "ignoreThis.txt". svn status # Check to see if the file is ignored or not. > ? ./ignoreThis.txt > 1 unversioned file # ...it is NOT currently ignored. svn propset svn:ignore "ignoreThis.txt" . # Apply the svn:ignore property to the "myRepoRoot" directory. svn status > 0 unversioned files # ...but now the file is ignored! cd subdirectory # now open a subdirectory. echo "foo" > "ignoreThis.txt" # create another file named "ignoreThis.txt". svn status > ? ./subdirectory/ignoreThis.txt # ...and is is NOT ignored! > 1 unversioned file
(따라서./subdirectory/ignoreThis
ignoreThis.txt
"가.
repo 루트에 적용 되더라도 무시되지 않습니다.) - 따라서 무시 목록을 재귀 적으로 적용하려면
svn propset svn:ignore <filePattern> . --recursive
.- 이렇게하면 모든 하위 디렉터리에 속성 복사본이 만들어집니다.
<filePattern>
값이 하위 디렉토리에서 다른 경우 하위 값이 상위를 완전히 대체하므로 "가산"효과가 없습니다.- 따라서 루트
<filePattern>
을 변경하면.
, 그런 다음--recursive
로 변경하여 하위 및 하위 디렉토리에 덮어 써야합니다.
- 명령 줄 구문은 직관적이지 않습니다.
svn ignore pathToFileToIgnore.txt
와 같은 것을 입력하여 SVN에서 파일을 무시한다고 가정했지만 이것이 SVN의 무시 기능이 작동하는 방식이 아닙니다.
3- svn:global-ignores 속성입니다. SVN 1.8 필요(2013년 6월):
- 이것은 SVN 1.8의 "상속 된 속성"기능을 사용한다는 점을 제외하면
svn:ignore
와 유사합니다. svn:ignore
와 비교하면 파일 패턴은 모든 하위 디렉터리 (직계 하위 디렉터리뿐만 아니라)에 자동으로 적용됩니다.- 이는 상속 된 무시 파일 패턴이 상속 될 때 자동으로 적용되므로
--recursive
svn:global-ignores
ignores를 설정할 필요가 없음을 의미합니다.
- 이는 상속 된 무시 파일 패턴이 상속 될 때 자동으로 적용되므로
- 이전 예제와 동일한 명령 세트를 실행하지만
svn:global-ignores
사용합니다.cd ~/myRepoRoot # Open an existing repo echo "foo" > "ignoreThis.txt" # Create a file called "ignoreThis.txt" svn status # Check to see if the file is ignored or not > ? ./ignoreThis.txt > 1 unversioned file # ...it is NOT currently ignored svn propset svn:global-ignores "ignoreThis.txt" . svn status > 0 unversioned files # ...but now the file is ignored! cd subdirectory # now open a subdirectory echo "foo" > "ignoreThis.txt" # create another file named "ignoreThis.txt" svn status > 0 unversioned files # the file is ignored here too!
"TortoiseSVN"사용자의 경우 :
TortoiseSVN의 용어 (Windows 탐색기 메뉴 시스템에서 사용됨)가 처음에는 오해의 소지가 있었기 때문에이 모든 배열이 혼란 스러웠습니다. Ignore 메뉴의 "Add recursively", "Add *"및 "Add"의 중요성이 무엇인지 확신 할 수 없었습니다. 옵션. 이 게시물이 Ignore 기능이 SVN Properties 기능과 어떻게 연결되는지 설명하기를 바랍니다. 즉, 명령 줄을 사용하여 무시 된 파일을 설정하여 GUI를 사용하는 대신 작동 방식을 느끼고 명령 줄에 익숙해 진 후에 만 GUI를 사용하여 속성을 조작하는 것이 좋습니다.
무시되는 파일 나열:
svn status
명령은 무시 된 파일 (즉, RGA global-ignores
ignores 패턴과 일치하는 파일 또는 직계 상위 디렉토리의 svn:ignore
svn:global-ignores
ignores 패턴과 일치하는 파일)을 숨 깁니다.
--no-ignore
옵션을 사용하십시오. 무시 된 파일의 상태는 I
이고 출력을 grep
으로 파이프하여 "I"로 시작하는 행만 표시합니다.
명령은 다음과 같습니다.
svn status --no-ignore | grep "^I"
예를 들면 :
svn status
> ? foo # An unversioned file
> M modifiedFile.txt # A versioned file that has been modified
svn status --no-ignore
> ? foo # An unversioned file
> I ignoreThis.txt # A file matching an svn:ignore pattern
> M modifiedFile.txt # A versioned file that has been modified
svn status --no-ignore | grep "^I"
> I ignoreThis.txt # A file matching an svn:ignore pattern
출처 : https://stackoverflow.com/questions/86049/how-do-i-ignore-files-in-subversion
'개발관련 > other' 카테고리의 다른 글
node.js에서 HTTP POST 요청하는 방법 (0) | 2021.10.06 |
---|---|
node.js 앱을 백그라운드 서비스로 실행하는 방법 (0) | 2021.10.05 |
AngularJS : $ scope. $ apply () 호출시 $digest already in progress 오류 해결방법 (0) | 2021.10.01 |
GUID와 UUID간에 차이점 (0) | 2021.10.01 |
Angular / RxJs`Subscription` 구독 취소 시기 (0) | 2021.09.30 |