2009-03-31 2 views
4

PERFORCE에서는 'none to sync'명령을 실행하여 클라이언트에서 파일을 제거 할 수 있지만 저장소 (또는 svn lingo의 저장소)는 변경하지 않아도됩니다.클라이언트에서만 파일을 제거하는 svn 명령이 있습니까?

P4 동기화 ... # 없음

SVN에서 비슷한 명령이 있나요?


편집 : 지금까지 대답 한 것들에

감사합니다.

는 명확히하기 :

내가 디렉토리에 RM은 -rf를 사용하지 않는, 모든 파일, 로컬 있습니다 심지어 사람들을 제거하기 때문이다. 나는 또한 클라이언트와 저장소에있는 개별 파일을 손으로 삭제해야 할 필요가 없다.

'p4 sync ... # none'명령을 사용하면 저장소/저장소에있는 클라이언트에서 파일을 제거하고 로컬 전용 파일 만 남겨 둘 수 있습니다.

작은 파일 세트를 사용하면 큰 문제는 아니지만 수 많은 파일이 있으면 손으로 처리하는 것이 어렵습니다.

답변

1

그래서 당신은 기본적으로 버전과 수정되지 않은 모든 파일을 제거하려면 다음

는 스파 스 체크 아웃 기능을 설명하는 릴리스 노트의 일부 ?

당신은 스크립트를 요리 할 수있는 모든 파일과 그들에 통화 "SVN 상태", "svn의 상태가"빈 출력을 제공하는 파일을 제거를 반복은 ...


편집 : 순진한 파이썬 수정되지 않은 파일을 제거하는 스크립트. 버전없는 파일 및 로컬 수정 된 파일을 유지합니다.이 파일은 입니다. "svn stat -v"를 실행하고 구문 분석하는 것이 더 좋을 것입니다. 스크립트는 파일 만 제거하고 폴더는 건드리지 않습니다.

3

운영 체제의 delete 명령을 사용하여 파일을 로컬에서 간단히 삭제할 수 있습니다. 파일은 다음에 작업 카피를 갱신 할 때 다시 생성됩니다.

또한 버전 1.5부터는 저장소의 일부를 생략하여 작업 복사본에 기록 할 수있는 스파 스 체크 아웃을 만들 수 있습니다. 그러나 내가 올바르게 기억한다면, 이것은 하나의 파일이 아니라 디렉토리에서 작동합니다. http://subversion.tigris.org/svn_1.5_releasenotes.html#sparse-checkouts

그리고 여기에 SVN 책의 해당 장이다 : http://svnbook.red-bean.com/en/1.5/svn.advanced.sparsedirs.html

+0

링크를 제공해 주셔서 감사합니다. 왜 내가 delete 또는 rm을 사용하고 싶지 않은지 정확히 설명하기 위해 질문을 업데이트했습니다. – grieve

1

, 당신은 그렇게 할 수있는 간단한 쉘 스크립트,

svn st -v | cut -c '41-' | xargs echo rm 

을 따라 뭔가 ((리눅스/Cygwin에서에서) 참고 : 실제로 아무 것도 삭제하지 않으려면 echo을 제거하십시오.

그러나 로컬 수정 상태에 관계없이 저장소의 모든 파일을 제거합니다. 폴더를 마우스 오른쪽 버튼으로 클릭이 extended menu를 불러옵니다 동안

0

TortoiseSVN을 가진

svn rm folderToDelete --keep-local 

사용 후 "(지역 유지) 삭제"를 선택, Shift 키를 누르고 있습니다. 서브 버전 1.6.0

svn update --set-depth exclude <file> 

+0

그가 원하는 것과 정반대로 행동하지 않겠습니까? – Powerlord

+0

@ R. Bemrose : 문서를 읽는 것이 내가 원하는 것과 반대되는 것처럼 보입니다. – grieve

+0

죄송합니다. 필자는 PERFORCE를 한번도 사용하지 않았으므로 '아무에게도 동기화되지 않습니다'가 실제로 무엇인지 잘 모르겠습니다. 내가 여기에 언급 한 것과 반대라면, 폴더를 내 보낸 다음 (모든 .svn 폴더를 삭제) 'svn update parentfolder --depth = files'를 실행하십시오. – Stefan

1

이것은 갱신에 반환되지 않도록 작업 카피 마크에서 파일을 제거합니다.

+0

+1 47 초 만에 나를 때려 :-) –

0

또는 패치를 만드십시오. 그러면 모든 로컬 변경 사항이 패치 파일에 기록됩니다.

거북이 : 오른쪽 클릭 -> tortoiseSVN-> 패치 생성. 나중에이 패치 파일을 다른 작업 복사본에 적용 할 수 있습니다.

ps. 왜 그렇게하고 싶은지는 언급하지 않았지만 위의 내용이 결국 당신이 필요로하는 것이 될 수도 있습니다.

관련 문제