답변:
(이 답변은 SVN 1.8 및 1.9의 동작과 일치하도록 업데이트되었습니다)
두 가지 질문이 있습니다.
"무시 된 파일"이란 파일이 "버전 화되지 않은"경우에도 목록에 표시되지 않음을 의미합니다. SVN 클라이언트는 파일 시스템에 파일이 전혀 존재하지 않는 것으로 간주합니다.
무시 된 파일은 "파일 패턴"으로 지정됩니다. 파일 패턴의 구문과 형식은 SVN의 온라인 설명서 ( http://svnbook.red-bean.com/nightly/en/svn.advanced.props.special.ignore.html "Subversion의 파일 패턴" )에 설명되어 있습니다.
Subversion은 버전 1.8 (2013 년 6 월) 이상에서 파일 패턴을 지정하는 3 가지 방법을 지원합니다. 다음은 예제가 포함 된 요약입니다.
global-ignores
옵션 :global-ignores
다른 사용자가 목록을 공유하지 않으며 컴퓨터에 체크 아웃 한 모든 리포지토리에 적용됩니다.C:\Users\{you}\AppData\Roaming\Subversion\config
Software\Tigris.org\Subversion\Config\Miscellany\global-ignores
모두 HKLM
와 HKCU
.~/.subversion/config
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
"가 .
리포지토리 루트 에 적용 되더라도 파일 은 무시되지 않습니다 .
따라서 무시 목록을 재귀 적으로 적용하려면을 사용해야합니다 svn propset svn:ignore <filePattern> . --recursive
.
<filePattern>
하위 디렉토리에서 값이 다른 경우 하위 값이 상위를 완전히 대체하므로 "추가"효과가 없습니다.<filePattern>
root .
에서를 변경 --recursive
하면 하위 및 하위 디렉토리에서 덮어 쓰도록 변경해야합니다 .명령 줄 구문은 직관적이지 않습니다.
svn ignore pathToFileToIgnore.txt
SVN의 무시 기능이 작동하는 방식이 아닌 것과 같은 것을 입력하여 SVN의 파일을 무시한다고 가정했습니다 .svn:global-ignores
재산. SVN 1.8 필요 (2013 년 6 월) :svn:ignore
SVN 1.8의 "상속 된 속성"기능을 사용한다는 점을 제외하고 와 비슷 합니다.svn:ignore
때 파일 패턴은 모든 하위 디렉토리 (직접 하위 노드가 아닌)에 자동으로 적용됩니다.
svn:global-ignores
와 --recursive
상속으로, 플래그은 상속하고 같은 파일 패턴이 자동으로 적용됩니다 무시합니다.이전 예제와 동일한 명령 세트를 실행하지만 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의 용어 (Windows 탐색기 메뉴 시스템에 사용됨)가 처음에 오도 되었기 때문에이 전체적인 배열이 혼란 스러웠습니다. 무시 메뉴의 "재귀 적으로 추가", "추가 *"및 "추가"의 중요성을 확신 할 수 없었습니다. 옵션. 이 게시물이 무시 기능이 SVN 속성 기능과 어떻게 관련되는지 설명하기를 바랍니다. 즉, 명령 줄을 사용하여 무시 된 파일을 설정하면 GUI를 사용하는 대신 파일이 작동하는 방식을 느끼고 명령 줄에 익숙한 후에 GUI를 사용하여 속성을 조작하는 것이 좋습니다.
이 명령 svn status
은 무시 된 파일 (즉, RGA global-ignores
패턴과 일치하거나 직계 상위 디렉토리의 svn:ignore
패턴 또는 조상 디렉토리의 svn:global-ignores
패턴 과 일치하는 파일)을 숨 깁니다 .
--no-ignore
해당 파일을 보려면 옵션을 사용하십시오 . 무시 된 파일의 상태는 "I"로 시작하는 행만 표시 I
하도록 출력을 파이프합니다 grep
.
명령은 다음과 같습니다.
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
따다!
svn propedit svn:ignore .
이고 텍스트 편집기가 구성되지 않은 경우 svn : E205007 : 환경 변수 SVN_EDITOR, VISUAL 또는 EDITOR가 설정되지 않았으며 'editor-cmd'런타임 구성 옵션이 설정되지 않았다는 오류 메시지가 표시 됩니다. 에디터를 여는 대신에 찾았 습니다. 따라서 --editor-cmd nano를 다음 과 같이 지정 하십시오.svn propedit svn:ignore . --editor-cmd nano
svn status | grep '^?'
버전 제어 파일에없는 목록을 작성하려면 다음 명령을 사용하십시오.
svn status | grep "^\?" | awk "{print \$2}" > ignoring.txt
그런 다음 파일을 편집하여 실제로 무시하려는 파일 만 남겨 두십시오 . 그런 다음이 파일을 사용하여 파일에 나열된 파일을 무시하십시오.
svn propset svn:ignore -F ignoring.txt .
줄 끝의 점에 유의하십시오. 속성이 현재 디렉토리에서 설정되고 있음을 SVN에 알립니다.
파일을 삭제하십시오.
rm ignoring.txt
마지막으로 커밋
svn ci --message "ignoring some files"
다음을 통해 어떤 파일이 무시되는지 확인할 수 있습니다.
svn proplist -v
svn status | awk "/^?/ {print \$2}" > ignoring.txt
입니다.
svn pg svn:ignore . >> ignore.txt
. 현재 무시를 파일에 추가하는 첫 번째 명령 후에 시도 하십시오.
.gitignore와 같은 파일이나 디렉토리는 무시해도됩니다. 무시하려는 디렉토리 / 파일 목록의 텍스트 파일을 만들고 아래 코드를 실행하십시오.
svn propset svn:ignore -F ignorelist.txt .
또는 텍스트 파일을 사용하지 않으려면 다음과 같이하십시오.
svn propset svn:ignore "first
second
third" .
svn:ignore
명령 을 다시 실행 해야합니다 ( stackoverflow.com/a/58380306/189518 참조 )
TortoiseSVN 을 사용 하는 경우 파일을 마우스 오른쪽 단추로 클릭 한 다음 TortoiseSVN / 추가를 선택 하여 무시 목록 을 선택 하십시오 . 파일 / 와일드 카드가 svn:ignore
속성에 추가 됩니다.
svn:ignore
파일을 체크인 할 때 확인되고 일치하는 파일은 무시됩니다. Visual Studio .NET 프로젝트에 대해 다음과 같은 무시 목록이 있습니다.
bin obj
*.exe
*.dll
_ReSharper
*.pdb
*.suo
TortoiseSVN / Properties 의 상황에 맞는 메뉴에서이 목록을 찾을 수 있습니다 .
아무도 언급하지 않은 것처럼 ...
svn propedit svn:ignore .
그런 다음 파일의 내용을 편집하여 무시할 패턴을 지정하고 편집기를 종료하면 모든 작업이 완료됩니다.
.svnignore Example for Java 기사를 찾았습니다 .
예 : Ruby on Rails의 .svnignore,
/log
/public/*.JPEG
/public/*.jpeg
/public/*.png
/public/*.gif
*.*~
그리고 나서:
svn propset svn:ignore -F .svnignore .
.gitignore의 예. 당신은 당신의 .svnignore에 사용할 수 있습니다
propedit를 사용할 때는 파일이 무시 목록에서 제외되도록 후행 공백이 없어야합니다.
Linux에서 tab-autocomplete를 사용하여 시작할 파일을 만들면 자동으로 삽입됩니다.
svn propset svn:ignore 'file1
file2' .
또 다른 해결책은 다음과 같습니다.
svn st | awk '/^?/{print $2}' > svnignore.txt && svn propget svn:ignore >> svnignore.txt && svn propset svn:ignore -F svnignore.txt . && rm svnignore.txt
또는 한 줄씩
svn st | awk '/^?/{print $2}' > svnignore.txt
svn propget svn:ignore >> svnignore.txt
svn propset svn:ignore -F svnignore.txt .
rm svnignore.txt
그것이하는 일 :
config
파일 을 언급 한 유일한 답변입니다 .
더 읽기 쉬운 bkbilly의 답변 :
svn st | awk '/^?/{print $2}' > svnignore.txt
svn propget svn:ignore >> svnignore.txt
svn propset svn:ignore -F svnignore.txt .
rm svnignore.txt
그것이하는 일 :
작업 사본에서 svn status 명령을 사용하여 파일의 상태를 표시하십시오. 아직 버전 제어가되지 않고 무시되지 않은 파일 옆에 물음표가 표시됩니다.
파일을 무시하려면 svn : ignore 속성을 편집해야합니다 . http://svnbook.red-bean.com/en/1.5/svn.advanced.props.special.ignore 에서 svnbook의 버전없는 항목 무시 장을 읽으십시오 . html . 이 책은 svn status 사용에 대한 자세한 내용도 설명합니다.
SVN ignore
은 TortoiseSVN에서 관리하기 쉽습니다. TortoiseSVN을 열고 파일 메뉴를 마우스 오른쪽 버튼으로 클릭 한 다음 추가를 선택하여 무시 목록을 선택하십시오.
svn:ignore
속성에 파일이 추가 됩니다. 파일을 체크인하면 해당 파일과 일치하는 파일은 svn:ignore
무시되고 커밋되지 않습니다.
Visual Studio 프로젝트에서 무시할 다음 파일을 추가했습니다.
bin obj
*.exe
*.dll
*.pdb
*.suo
이 방법을 사용하여 Comparetrap의 SVN에서 소스 코드를 관리하고 있습니다.
나를 위해 일한 것 :
Subversion에서 파일을 어떻게 무시합니까?
1. 파일 탐색기에서 SVN 프로젝트 폴더 이름을 마우스 오른쪽 버튼으로 클릭하십시오.
2. "SVN Commit ..."을
클릭하십시오
. 3. "commit"창이 나타납니다.
4. 무시하려는 폴더 / 파일을 마우스 오른쪽 버튼으로 클릭하십시오.
5. Add를 클릭하여 목록을 무시합니다
6. 폴더 / 파일을 선택합니다
7. "속성 변경"을 SVN에 커밋
또한 버전 관리를받지 않는 파일은 어떻게 찾습니까?
위의 3 단계 후에 "버전없는 파일 표시"를 클릭하십시오.