2009-07-10 4 views
11

나는 혼자 일하는 프로젝트에 거북 SVN을 사용하고 있으며 거대한 파일을 내 저장소 (VC++ Intellisense 데이터베이스)에 위탁했습니다. 이제 백업을 용이하게하기 위해 저장소에서이 파일을 제거하고 싶습니다.SVN 저장소에서 파일을 완전히 제거 할 수 있습니까?

내 프로젝트에서 파일을 제거하고 해당 파일의 이전 버전이 저장소에 남아 있으므로 커밋 (명백하게) 문제를 해결하지 못합니다. 새로운 저장소의 생성을 포함하지 않는이 문제를 해결할 수있는 방법이 있습니까?


편집 @ryansstack 솔루션은 그게 내가 (내 저장소가 위치한 디렉토리에서 명령을 실행) 한 일이다, 완벽하게 작동

: 우선 내가 덤프를 생성

내 거대한 파일을 필터링하는 저장소 :

svnadmin dump tcc | svndumpfilter exclude "/trunk/Image Segmentation/Image Segmentation.ncb" > tcc.bak 

그런 다음 새 저장소 (tcc2)를 만들고 followi를 실행했습니다. ng 명령 :

svnadmin load tcc2 < tcc.bak 

이제 tcc2의 덤프 크기는 170MB의 tcc보다 7MB입니다.

+0

Dupe http : // stackoverflow.com/questions/663584/subversion-permanently-remove-in-directory-project-663595 # 663595 http://stackoverflow.com/questions/560684/svn-obliterate –

답변

2

필자가 아는 한, 파일이 svn에서 커밋되면 svn에서 해당 기능을 실행 취소 할 수있는 기능이 없습니다. 디렉토리에서 파일을 제거하고 디렉토리를 커밋 할 수는 있지만 파일은 디렉토리의 최신 개정판에 포함되지 않습니다. 커밋 된 개정판은 여전히 ​​거기에 있습니다. 보통 나는 좋은 것을 찾았지만 물론 덜 바람직 할 수도있는 경우가 있습니다.

-1

가 있습니다. 내 SVN 서버 관리자는이 일을 할 수 없다고 말해. 여러분이 할 수있는 유일한 방법은 새로운 저장소를 시작하고 이전 저장소를 디스크에 보관하는 것입니다.

특히 파일을 변경하지 마십시오. 바이너리 파일이라면 SVN이 여러 복사본을 저장한다고 생각하기 때문입니다.

+0

SVN은 바이너리 파일의 diffs 않습니다. –

2

나는 비슷한 것을하고 있으며 근본적으로 Subversion이 설정되어 있으므로 단순히 그런 것을 삭제할 수 없습니다.

그러나 데이터베이스를 이미 백업 했으므로 check this out이어야합니다. 내가 한 일은 내 저장소를 덤핑하고 필터링 한 다음 새 저장소에로드하는 것입니다. 물론, 나는 이미 다른 이유로 덤프/필터 /로드 사이클을 수행하고 있었기 때문에 약간의 추가 필터링으로 많은 작업이 추가되지 않았습니다. 이미 백업을하고 있다면, 현재의 repo를 백업 할 수 있습니다 (나는 덤프를하고 있거나 여러 개의 증분 덤프를하고 있다고 가정합니다). svndumpfilter를 사용하여 특정 리비전을 필터링하고 백업에서 다시로드하십시오.

편집 : Tigris 공식적으로 issue 516 있습니다. "svn 지움"명령이 계획되어 있지만 아직 구현되지 않았습니다.

-1

커밋 된 파일을 svn에서 실행 취소 할 수 없습니다.

관련 문제