2012-03-05 3 views
4

그래서 물어 보지 못한 질문이 있습니다. 전복 1.7SVN 로컬 파일을 제거하고 저장소에 보관하십시오.

내가 필요하지 않은 디렉토리에 "svn의 공동을"한을 사용

하지만, (다른 사람이 그것을 필요로 하는가) 저장소에서 제거 할 수 없습니다. 내가 디렉토리의 로컬 복사본을 삭제할 수 있습니다 그리고 괜찮아요,하지만 내가 "svn을"루트 위로 실행하면 삭제 된 디렉토리를 복원합니다.

/rootDir 
     /folder1.  
     /unneededFolder 

내가 unneededFolder을 삭제할 수 있지만 SVN 내가 ROOTDIR에 업데이트를 실행하면 (오히려 각 하위 디렉토리에 최대 svn을 실행할 필요없이) 복원하려고 유지합니다. svn에게 리포지토리 (repository)로부터 삭제하지 않고 작업 카피 내의 그 폴더의 갱신을 정지하도록 (듯이) 어떻게하면 좋을까요.

답변

6

가장 쉬운 방법은 사용하는 것입니다

svn update --set-depth exclude <dir>

이 당신의 작업 복사본에서 을 제거 할 수 있지만 저장소에두고 있습니다.

Sparse Directories에 대한 문서를 참조하십시오.

0

-N (svn update) 옵션은 업데이트를 비회환으로 만듭니다. 현재 작업중인 디렉토리의 내용 만 업데이트됩니다.

+0

-N 옵션은 사용되지 않음으로 표시됩니다. 대신에 --depth = ..를 사용해야합니다. – khmarbaise

+0

아, 감사합니다! 고맙습니다. – asf107

0

필요한 것은 svn 클라이언트의 --depth 옵션을 사용하는 것입니다 (sparse-checkout가 호출 됨). 즉, 체크 아웃 될 디렉토리 레벨 수를 제한하려면 --depth 옵션을 사용하여 별도의 체크 아웃을 수행해야합니다. 어떤 의미입니까? 즉, 귀하의 경우 : 모든 레벨을 포함하지 않는 작업 사본을 가지고있는 것보다

svn co URL rootDir --depth=immediate 

을 의미합니다. 이제 모든 레벨 또는 제한된 레벨을 갖고 싶은 디렉토리로 이동할 수 있습니다. 의 당신이 FOLDER1로 이동 가정 해 봅시다 : 해당 폴더로 이동하지 않는 한

svn update --depth=infinity 

그래서 그 후 당신이 unneededFolder의 내용을받지 않습니다 및 수행 :

svn update --depth=infinity 

절충은 너야 한 번 무한대로 돌아 가면 되돌아 갈 수 없습니다.

또한 저장소에 대해 이야기하고 있지만 작업 복사본을 의미합니다.

+0

고마워요. 나는 당신이 지시 한대로 실제로 더 많이 또는 더 적은 것을 했었습니다. 단지 루트 디렉토리에서 즉시를 체크 아웃 한 다음 적절한 "svn update"를 사용했습니다. 내가 배운 것은 폴더에서 "svn update"를 "실행 취소"할 수 없다는 것입니다. 한 번 업데이트했으면 로컬 복사본에서 제거하고 루트 디렉토리의 "svn update"에 반환하지 못하게 할 수 없습니다. 그런 다음 문제를 해결하려면 로컬 복사본을 완전히 제거하고 루트 디렉토리를 다시 확인하고 필요한 폴더를 업데이트하십시오. Thansk! –

관련 문제