2014-12-27 2 views
1

파일 서버에 SVN 저장소가 있습니다 (모범 사례는 아니지만). 최신 개정 중 하나가 손상되었습니다. 내 repo를 로컬로 복사했고 경로는 C : \ SVNLOCAL \ SVNRepos입니다. 손상된 커밋은 r 1070입니다. svnadmin을 사용하여 r rep 1069 (svnadmin dump C:\SVNLOCAL\SVNRepos -r 1069 > r1069.dump) 및로드 (svnadmin load C:\SVNLOCAL\RECOVER < C:\SVNLOCAL\r1069.dump)의 저장소를 덤프하고 새 경로에로드했지만 이름을 바꾸지 않고도 내역을 표시하지 않습니다.SVN 내역이있는 특정 버전을 덤프/새로 고침

두 가지 질문은 revs 폴더 (SVNRepos \ db \ revs \ 1 \ 1070+)에서 1069 이후의 모든 rev를 제거 할 수 있습니까? 그렇게 단순하지 않다고 가정하고 덤프를하고 다시로드해야합니다. 그렇다면 역사를 손상시키지 않으면 서 어떻게해야합니까?

기본적으로, 나는 단지 r1069로 돌아가고 싶지만, 내가 repo와 비교해 보려고하면 1070에 예기치 않은 파일 끝이 생겨서 멈춘다 고합니다. 나는 덤프를 생각하고 부하 만이 유일한 대안이다.

답변

1

(2) 수정 인수 (시작 및 끝 개정)를 사용해야합니다. dump 명령은 모두 경로를 시작 리비전에 덤프하고 다음 리비전 (최종 리비전까지)을 델타로 저장합니다.

올바른 명령해야한다 : 당신이 저장소에 손상을 줄 수 있으므로

svnadmin dump C:\SVNLOCAL\SVNRepos -r 0:1069 >r1069.dump 

당신은 당신의 SVN 리포에서 마지막 버전을 제거하지 않아야합니다. svn 1.8.x 저장소가 있으면 최소한 sqllite-cache를 삭제합니다.

항상 덤프 파일을 통해 조작하도록하십시오.

+0

피터, 감사합니다. 파일을 직접 변경하여 레포를 날려 버리 겠지만 너무 부끄럽기 때문에 커밋 수정이 잘못되었다는 사실을 알 수 있습니다. 지금 수정을 시도하고 완료되면로드합니다. Repo를 r 1069까지 그대로 유지하면 답변을 표시합니다. – thekonger

관련 문제