SVN으로 디렉토리를 선택하고 있습니까?
SVN을 사용하기 시작하기 전에 시작 소스 제어에서 필요하지 않은 캐시 디렉토리가 있습니다. SVN으로 전체 디렉토리 / 폴더를 무시해야합니까?
OS X 및 명령 줄에서 버전 및 TextMate 를 사용 하고 있습니다.
svn:ignore
상위 디렉터리 의 속성을 설정합니다 .
svn propset svn:ignore dirname .
무시할 항목이 여러 개인 경우 속성 값에서 줄 바꿈으로 구분합니다. 이 경우 외부 편집기를 사용하여 속성 값을 편집하는 것이 더 소유하여.
svn propedit svn:ignore .
다음은 디렉토리 구조의 예입니다.
\project
\source
\cache
\other
project
캐시 디렉토리가 추가되지 않고 표시되는 것을 볼 때 .
> svn st
M source
? cache
무시 속성을 설정 비용
svn propset svn : 캐시를 무시합니다.
어디 svn:ignore
재산 당신이있는 거 설정의 이름, cache
속성 값, 그리고 .
당신 이이 속성을 설정하는 디렉토리입니다. cache
속성이 필요한 디렉터리의 디렉터리 .
하나의 속성을 확인 클릭 :
> svn proplist
Properties on '.':
svn:ignore
의 값을 보려면 다음을 수행하십시오 svn:ignore
.
> svn propget svn:ignore
cache
이전에 설정 한 속성을 삭제 비용 :
svn propdel svn:ignore
언급해야 할 중요한 사항 :
명령 줄에서 사용할 수 없습니다.
svn add *
명령 줄이 확장 *
되어 svn add
모든 파일이 추가되기를 원 하기 때문에 무시 된 파일도 추가 됩니다. 따라서 대신 사용하십시오.
svn add --force .
이 작업을 수행하기 위해 잠시 시간을 보냈고 파일이 이미 SVN에 존재하는 경우 해당 파일이 필요 svn delete
하고 svn:ignore
속성 을 편집해야 합니다.
당연한 것 같지만 계속해서 ?
내 목록 에 표시 될 때 계속해서 무시할 것 입니다.svn status
약간의 확장 svn 명령 줄 도구를 사용 하여이 작업을 수행하는 경우 다음을 입력합니다.
svn propedit svn:ignore path/to/dir
선택한 텍스트 편집기를 '*'를 입력하여 그 안에있는 모든 것을 무시하고 저장 + 종료-즉 svn에있는 디렉토리 자체를 포함하지만 그 안에있는 모든 파일을 무시하고 다음 파일을 상위 경로를 입력 한 다음 파일 에 디렉토리 이름을 입력합니다. 저장 후 업데이트 ( 'svn up')를 실행하고 적절한 경로를 확인합니다.
svn:ignore
상위 디렉토리 에서 속성을 설정합니다 .
$ cd parentdir
$ svn ps svn:ignore . 'cachedir'
이의 현재 값을 사용합니다 svn:ignore
. 다음을 사용하여 값을 편집 할 수 있습니다.
$ svn pe svn:ignore .
그러면 편집기가 열립니다. 한 줄에 하나씩 여러 패턴을 추가 할 수 있습니다.
다음을 사용하여 현재 값을 볼 수 있습니다.
$ svn pg svn:ignore .
GUI를 사용하는 경우이를위한 메뉴 옵션이 있어야합니다.
먼저 제거하십시오 ...
디렉토리 foo
가 이미 버전 관리하에있는 경우 먼저 다음을 사용하여 제거하십시오.
svn rm --keep-local foo
... 그런 다음 무시 :
svn propset svn:ignore foo .
위의 모든 기여에 감사드립니다. 파일을 무시하면서 내 경험에서 얻은 추가 정보를 공유하고 싶습니다.
폴더가 이미 개정 관리를받는 경우
svn import 및 svn co 파일을 가져온 후 일반적으로 처음으로하는 작업입니다.
모든 런타임 캐시, 첨부 파일 폴더는 버전 제어를받습니다. 따라서 svn ps svn : ignore 전에 저장소에서 삭제해야합니다.
위의 SVN 버전 1.5에서는을 사용할 수 svn del --keep-local your_folder
있지만 이전 버전의 경우 솔루션은 다음과 같습니다.
- svn 은 폴더의 깨끗한 사본을 내 보냅니다 (
.svn
숨겨진 폴더 없음) - svn del 로컬 및 저장소,
- svn ci
- 폴더 다시 복사
- 수행 일 SVN 과 폴더로 플래그가 확인 '?'
- 이제 솔루션에 따라 svn ps 를 수행 할 수 있습니다.
무시할 폴더가 두 개 이상 필요한 경우
- 한 디렉토리에는 다음과 같이 설정해야하는 두 개의 폴더가 있습니다.
svn:ignore
- 하나를 설정하면 다른 하나가 제거됩니다.
- 그렇다면 우리는 svn pe 가 필요한지 궁금합니다
svn pe
텍스트 파일을 편집해야하며 vi를 사용하여 텍스트 편집기를 설정하는 데 필요한 경우이 명령을 사용할 수 있습니다 .
export SVN_EDITOR=vi
- "o"로 새 줄을 열 수 있습니다.
- 무시할 폴더 이름을 모두 입력하십시오.
- 편집 모드에서 벗어나려면 'esc'키를 누르십시오.
- ": wq"를 입력 한 다음 키를 Enter눌러 저장하고 종료합니다.
파일은 다음과 같습니다.
runtime
cache
attachments
assets
... 하나 이상의 디렉토리 (예 : build/
temp/
및 *.tmp
파일)를 무시하려면 두 단계로 수행하거나 (첫 번째를 무시하고 속성 무시 (여기에서 다른 답변 참조) 편집) 또는 다음과 같이 작성할 수 있습니다.
svn propset svn:ignore "build
temp
*.tmp" .
명령 줄에서.
특정 SVN 클라이언트 TortoiseSVN을 사용하는 경우 커밋시 항목을 마우스 오른쪽 단추로 클릭하고 "무시 목록에 추가"를 선택하는 옵션이 있습니다.
여러 항목을 무시하는 명령은 약간 까다 롭고 백 슬래시가 필요합니다.
svn propset svn:ignore "cache\
tmp\
null\
and_so_on" .
이 명령은 이름이 무엇이든을 무시합니다 cache
, tmp
, null
, 그리고 and_so_on
현재 디렉토리이다.
중첩 된 디렉토리를 무시하는 데 문제가있었습니다. 무시하고 싶은 최상위 디렉토리는 'svn status'로 표시되지 않지만 모든 하위 디렉토리는 표시됩니다. 이것은 아마도 다른 모든 사람들에게 자명하지만 나는 그것을 공유 할 것이라고 생각했습니다.
예:
/트렁크
/ 트렁크 / 캐시
/ trunk / cache / subdir1
/ trunk / cache / subdir2
cd /trunk
svn ps svn:ignore . /cache
cd /trunk/cache
svn ps svn:ignore . *
svn ci
파일을 무시하는 끔찍하고 가짜이며 어려운 방법에 대한 "감사합니다" svn.
그래서 svn-ignore-all 스크립트를 작성했습니다 .
#!/bin/sh
# svn-ignore-all
# usage:
# 1. run svn status to see what is going on at each step
# 2. add or commit all files that you DO want to have in svn
# 3. remove any random files that you don't want to svn:ignore
# 4. run this script to svn:ignore everything marked '?' in output of `svn status`
svn status |
grep '^?' |
sed 's/^? *//' |
while read f; do
d=`dirname "$f"`
b=`basename "$f"`
ignore=`svn propget svn:ignore "$d"`
if [ -n "$ignore" ]; then
ignore="$ignore
"
fi
ignore="$ignore$b"
svn propset svn:ignore "$ignore" "$d"
done
또한 특정 파일 목록 / 경로 이름을 무시하려면이 변형 svn-ignore를 사용할 수 있습니다 . svn-ignore-all은 실제로 xargs svn-ignore와 같아야한다고 생각합니다.
#!/bin/sh
# svn-ignore
# usage:
# svn-ignore file/to/ignore ...
for f; do
d=`dirname "$f"`
b=`basename "$f"`
ignore=`svn propget svn:ignore "$d"`
if [ -n "$ignore" ]; then
ignore="$ignore
"
fi
ignore="$ignore$b"
svn propset svn:ignore "$ignore" "$d"
done
한 가지 더 : 나는 많은 임의의 파일로 svn 체크 아웃을 오염시키는 경향이 있습니다. 커밋 할 때가되면 해당 파일을 '이전'하위 디렉토리로 이동하고 svn에게 '이전'을 무시하도록 지시합니다.
여러 무시를위한 Bash oneliner :
svn propset svn:ignore ".project"$'\n'".settings"$'\n'".buildpath" "yourpath"
프로젝트 디렉토리의 이름이 / Project이고 캐시 디렉토리의 이름이 / Project / Cache이면 / Project에 하위 버전 속성을 설정해야합니다. 속성 이름은 "svn : ignore"이고 속성 값은 "Cache"여야합니다.
속성에 대한 자세한 내용은 Subversion 매뉴얼 의이 페이지를 참조하십시오 .
Jason의 대답이 트릭을 수행합니다. 그러나 svn : ignore를 "."로 설정하는 대신 캐시 디렉토리 에서 캐시 디렉토리가 항상 존재하지 않는 경우 부모 디렉토리의 svn : ignore 속성 에 "cache"를 포함 할 수 있습니다 . 여러 "쓰레기"폴더에서이 작업을 수행합니다.
SVN이 무시할 디렉토리를 유지하려면 :
- 이렇게하면 저장소에서 파일이 삭제되지만 SVN 제어하에 디렉토리가 유지됩니다.
svn delete --keep-local path / directory_to_keep / *
- 그런 다음 디렉터리 (및 모든 콘텐츠)를 무시하도록 설정합니다.
svn propset svn : "*"path / directory_to_keep 무시
TortoiseSVN과 같은 SVN 또는 일종의 IDE 통합을 위해 프런트 엔드를 사용하는 경우 커밋 / 추가 작업과 동일한 메뉴에 무시 옵션도 있어야합니다.
svn : ignore 속성을 설정합니다 . 대부분의 UI svn 도구에는이 작업을 수행하는 방법과 링크의 명령 줄 토론이 있습니다.
버전을 사용하고 있기 때문에 실제로는 매우 쉽습니다.
- 체크 아웃 한 사본 찾아보기
- 무시할 디렉토리를 클릭하십시오.
- 오른쪽의 "무시 상자에서 편집
- *. *를 입력하여 모든 파일을 무시합니다 (또는 jpg 파일 만있는 경우 * .jpg 등).
후행 슬래시도 조심하십시오. images/*
내 무시 설정 파일에 포함 하면 ./images/
. 내가 달렸을 때 svn status -u
그것은 여전히 보였다 ? images
. 그래서 그냥 무시 설정을 images
슬래시 없음으로 변경했습니다 . 상태 확인을 실행하여 지 웠습니다.
다음 방법 으로 Eclipse 로 해결되었습니다 .
먼저 폴더를 프로젝트에 동기화하십시오.
팀-> 동기화
다음보기 인 팀보기에서 SVN 서버에 커밋 할 수있는 모든 리소스를 볼 수 있습니다.
따라서 무시할 리소스의 리소스 폴더를 선택하고 다음을 사용하여 무시할 수 있습니다.
팀->
svn:ignore
.
그런 다음 확인 창에서 첫 번째 옵션 인 "이름으로 무시"를 선택합니다.
예를 들어 대상 폴더와 해당 .class 리소스를 무시하려면 동기화를 수행하고 동기화보기에서 대상 폴더를 선택합니다. 그 후에
팀-> 추가
에 svn:ignore
그리고 나는 확인 창에서 첫 번째 옵션을 확인할 수 있습니다.
이 간단한 활동을 수행하는 방법을 찾기 위해 많은 시간을 잃은 후, 적절한 설명을 찾는 것이 어렵지 않게 게시하기로 결정했습니다.
먼저 샘플 구조를 보자
$ svn st? 프로젝트 / 트렁크 / 타겟? 프로젝트 / 트렁크 /myfile.x
1 – 먼저 mycase vim export SVN_EDITOR = vim에서 편집기를 구성합니다.
2 –“svn propedit svn : ignore project / trunk /”는 새 파일을 열고 우리의 경우에 파일과 하위 디렉토리를 추가 할 수 있습니다.“target”파일을 저장하고 닫고 작동합니다.
$ svn st? 프로젝트 / 트렁크 /myfile.x
감사.
참고 URL : https://stackoverflow.com/questions/116074/how-do-i-ignore-a-directory-with-svn
'ProgramingTip' 카테고리의 다른 글
grep은 검색 할 수있는 패턴과 일치하는 단어 만 표시 할 수 있습니까? (0) | 2020.10.03 |
---|---|
MySQL 쿼리 GROUP BY 일 / 월 / 년 (0) | 2020.10.03 |
데이터 ID 속성을 얻는 방법은 무엇입니까? (0) | 2020.09.29 |
데이터베이스, 테이블 및 열 명명 규칙? (0) | 2020.09.29 |
typedef 골대 골 정의 (0) | 2020.09.29 |