모든 새 파일을 SVN에 추가하는 방법
CLI에서 많은 양의 파일을 생성하는 ORM을 사용하고 있습니다. 내가 실행할 때 svn add
나타나는 디렉토리 내의 모든 파일에서 쉽게 실행할 수있는 방법이 있습니까??
svn status
편집 이 파일은 디렉토리 트리에 존재하므로 *
한 디렉토리에 대한 추가 가 작동하지 않습니다.
당신은 svn add path/to/dir/*
이미 버전 제어에 이미있는 것에 대해 경고를받을 수 있지만 그렇지 않은 모든 것을 추가 할 것입니다.
이렇게하면 지정된 디렉토리 트리 아래에 알 수없는 (무시 된 경우 제외) 모든 파일이 추가됩니다.
svn add --force path/to/dir
그러면 현재 디렉토리와 그 아래에있는 모든 알 수없는 (무시 된 제외) 파일이 추가됩니다.
svn add --force .
이것들은 나에게 가장 잘 작동하는 것 같습니다. 공백에서도 작동하며 무시 된 파일을 다시 추가하지 않습니다. 나는 내가 본 다른 답변에 나열된 것을 보지 못했습니다.
첨가:
svn st | grep ^? | sed 's/? //' | xargs svn add
풀이:
svn st | grep ^! | sed 's/! //' | xargs svn rm
편집 : 무시 된 파일을 유지하려면 "add *"를 사용하지 않는 것이 중요합니다. 그렇지 않으면 무시 된 모든 항목이 다시 추가됩니다.
svn status | grep "^\?" | awk '{print $2}' | xargs svn add
웹 어딘가에서 가져 왔지만 한동안 사용해 왔으며 잘 작동합니다.
경우 svn add whatever/directory/*
없는 작업을 수행, 당신은 그것을 힘든 방법을 수행 할 수 있습니다
svn st | grep ^\? | cut -c 2- | xargs svn add
해결책
svn status | grep ^? | sed 's/? //' | xargs svn add
공백과 함께 작동하지 않습니다. 대신 사용할 수 있습니다
svn status | grep ^? | sed 's/^? //' | xargs -I fn svn add "fn"
(내 시스템에서 선행 공백의 수가 다른 것처럼 보입니다-조정하십시오).
다음을 실행할 수 있어야합니다.
svn add *
이미 버전 관리중인 파일에 대해 불평 할 수 있지만 새 파일도 추가합니다.
하지만 이러한 생성 된 파일을 버전 제어에 추가 할 것인지 여부를 생각할 수 있습니다. 그것들은 컴파일 된 코드와 같은 파생 된 아티팩트로 간주 될 수 있으므로 추가해서는 안됩니다. 물론 이것은 당신에게 달려 있지만 생각할 것이 있습니다.
svn add *
일을해야합니다. 다음 사항을 확인하십시오.
svn commit
나중에 :)
생선 과 같은 일부 껍질에서는 **
globbing을 사용하여 수행 할 수 있습니다 .
svn add **
svn status | grep "^\?" | awk '{ printf("\""); for (f=2; f <= NF; f++) { printf("%s", $f); if (f<NF) printf(" "); } printf("\"\n");}' | xargs svn add
이것은 markb의 대답과 인터넷에서 약간의 사냥을 기반으로 한 것입니다. 보기 흉해 보이지만 OS X에서 작동하는 것 같습니다 (공백이있는 파일 포함).
공백이 포함되어 있어도 버전이 지정되지 않은 모든 파일을 추가합니다.
svn 상태 | awk '{$ 1 = ""; 인쇄 $ 0} '| xargs -i svn 추가 "{}"
svn status
무시되는 파일을 존중하는 새 파일 또는 누락 된 파일을 찾는 데 사용 하는 이러한 명령이 마음 에 듭니다.
svn add $( svn status | sed -e '/^?/!d' -e 's/^?//' )
svn rm $( svn status | sed -e '/^!/!d' -e 's/^!//' )
bash one-liner 중에서 이것이 가장 예쁘다고 생각합니다.
svn status | tee >(awk '/^?/{print $2}' | xargs -r svn add >&2) | awk '/^!/{print $2}' | xargs -r svn delete
모든 새 파일을 추가하고 누락 된 모든 파일을 삭제합니다. 주의해서 사용하고 빠른 액세스를 위해 별칭을 설정할 수 있습니다.
Mac 용 참고 : xargs -r
에서는 GNU 확장이 지원되지 않을 수 있습니다. 이 경우 추가하거나 삭제할 파일이 없으면 제거하고 경고를 무시하십시오.
나는 svn 버전 제어의 초보자입니다. 그러나 사람들이 이미 설정된 svn : ignore 속성을 무시하지 않고 파일을 추가하려는 경우 다음과 같이 문제를 해결했습니다.
- svn add --depth 빈 경로 / 대상 / 디렉터리
- Execute "svn propset svn:ignore -F ignoreList.txt --recursive" from the location where the ignoreList.txt resides. In my case this file was residing two directories above the "path/to/directory", which I wanted to add. Note that ignoreList.txt contains the file extensions I want svn to ignore, e.g. *.aux etc.
- svn add --force path/to/directory/.
The above steps worked.
참고URL : https://stackoverflow.com/questions/2120844/how-do-i-add-all-new-files-to-svn
'Programing' 카테고리의 다른 글
자바, 두 날짜 사이의 일 수 계산 (0) | 2020.11.29 |
---|---|
수평 로딩 진행률 표시 줄을 만드는 방법은 무엇입니까? (0) | 2020.11.29 |
UIViewController가 UINavigationBar 아래에서 확장되는 반면 UITableViewController는 확장되지 않는 이유는 무엇입니까? (0) | 2020.11.29 |
GOTO를 사용 하시겠습니까? (0) | 2020.11.29 |
Perl에서 "0 but true"는 무엇을 의미합니까? (0) | 2020.11.29 |