2013-09-03 2 views
0

내가 잘못 체크 아웃 한 로컬 작업 복사본을 삭제하려면 어떻게해야합니까? 다른 체크 아웃 된 트리 (및 .svn 디렉토리)가 포함 된 디렉토리가 있으며 그 중 하나만 삭제하려고합니다. 파일을 삭제하는 것만으로는 작동하지 않습니다. 부모에 대한 모든 업데이트 또는 트리 이름을 다시 사용하여 파일을 다시 채 웁니다. svn delete가 작동하지 않거나 부모로부터 커밋 할 수 없거나 여전히 트리 이름을 다시 사용합니다. [예] "삭제 된"트리를 무시할 수 있지만 이름을 다시 사용하고 싶습니다.]Subversion에서 로컬 복사본 삭제 1.7.5

svn delete에는 파일의 로컬 복사본을 보관하지만 리포지토리에서 제거하는 옵션 keep_local이 있습니다. 나는 기본적으로 반대로하고 싶다 - 로컬 복사본 을 제거한 적이없는 것처럼 마치 - 저장소를 건드리지 않는다. 이 일을하는 방법이 있습니까?

+0

''svn delete''이 뭐라고 말합니까? –

+0

아, 제대로 작동하고 모든 파일을 로컬에서 삭제합니다. 그런 다음 새 체크 아웃을 위해 프로젝트 이름을 다시 사용하려고 시도하고 모두 다시 되돌립니다. 그리고 svn delete를 수행 한 후에 커밋을 수행 할 수 없거나 저장소 파일을 삭제합니다. – TheMathemagician

+0

그냥 체크 아웃되었거나'svn : externals'을 통해 상위 디렉토리에 바인드되어 있습니까? –

답변

2

해결책은 sparse directories입니다.

의 당신이 parent라는 디렉토리가 있다고 가정 해 봅시다 (즉, 체크 아웃의 루트) child01, child02child03라는 이름의 디렉토리에 - 그리고 child02 당신이 체크 아웃에 필요하지 않은 디렉토리와 파일이 포함되어 있습니다. 당신은 child02가와 "스파 스"로보아야한다 Subversion을 말할 것 : 그때부터

> cd parent\child02 
> svn update --set-depth empty 

당신이 parent 폴더에 svn update를 발급 어느 경우에를, 서브 버전은 child02 폴더에 대한 업데이트를 "무시"합니다.

물론 이것은 결제 관련 사항입니다. svn checkoutparent의 다른 복사본이있는 경우 svn checkout의 기본 깊이 (실제로 모든 명령)가 infinity이기 때문에 child02에 파일과 폴더가 포함됩니다.

희망이 도움이됩니다.

+0

독창적 인! 그러나 내가 원하는 것은 실제로는 아닙니다. 마치 내가 만든 적이없는 것처럼 모든 로컬 복사본을 제거하려고합니다. – TheMathemagician

+0

음, AFAIK 유일한 다른 방법은 체크 아웃 메타 데이터를 편집하고 폴더와 그 하위 폴더 및 파일에 대한 모든 참조를 제거하는 것입니다. 나는 당신에게 경고해야한다, 이것은 불로 노는 것이므로 매우 신중해야한다. 또한 이것은 다시 현재의 체크 아웃에만 영향을줍니다. –

+0

네가 맞다면 이론적으로는 효과가 있지만 유감스럽게도 수천 개의 파일이 관련되어 있고 엄청난 수의 파일에 메타 데이터가 분명히 배포되어있다. 메타 데이터를 올바르게 편집 할 수 있다고 확신하지 못합니다. – TheMathemagician

관련 문제