
그래서... 우리는 SVN 저장소를 잃어버렸습니다. 불행한 상황으로 인해 실행 가능한 백업도 없습니다.
무엇을 해야 할까요? 가장 최근 업데이트가 있는 사람으로부터 "svn 내보내기"를 수행하고 다시 시작하시겠습니까? 기록을 복구할 수 있는 방법이 있나요? 아니면 로컬 결제를 새 서버에 연결하시겠습니까?
답변1
체크아웃만 있는 경우 코드 스냅샷은 있지만 기록은 없습니다.
그로부터 새로운 저장소를 생성할 수 있습니다. 기존 체크아웃을 설정한 후 새 저장소에 연결하는 것은 아마도 가치 있는 것보다 더 많은 문제가 될 것입니다. 가장 오래된 체크아웃에서 새 저장소를 생성한 다음 최신 체크아웃의 변경 사항을 업데이트로 커밋하는 것이 더 쉬울 것입니다.
기록 복구에 관해서는 특정 시점에 (svnadmin 덤프를 통해) 저장소 덤프 없이 이것이 어떻게 가능한지 알 수 없습니다. 오래된 덤프라도 저장소 생성부터 덤프가 만들어진 위치까지의 모든 기록을 제공합니다.
어쩌면 누군가가 당신의 저장소에서 git-svn을 사용했을 수도 있습니다. 일부 기록은 보존되었을 수 있지만 이를 새로운 Subversion 저장소로 다시 가져오는 것은 쉽지 않을 수 있습니다.
데이터 복구는 비용이 많이 들지만 리포지토리가 있는 저장 장치가 물리적으로 파괴되지 않았거나 완전히 덮어쓰지 않은 경우(그리고 SSD가 아닌 경우) 옵션이 될 수도 있습니다.
답변2
백업도 없이 저장소를 정말로 잃어버린 경우에는 그렇습니다. 사라졌습니다. 실제로 손실된 데이터를 복원할 수 있는 마법은 없습니다.
따라서 누군가의 작업 복사본이 있는 경우 새 저장소를 만들고 여기에 파일을 추가할 수 있습니다. (분명히) 모든 기록을 잃게 되지만 기록은 이미 손실되었습니다.
하드 드라이브를 복구 회사에 보내 데이터를 복원해 볼 수 있습니다. 저장소(또는 적어도 db/revs 및 db/revprops 디렉터리)가 있으면 저장소에서 저장소를 다시 생성할 수 있습니다(새 저장소의 디렉터리에 복사하여). 전체 DB가 없는 것으로 밝혀지면 상황이 좀 더 까다로워지지만 나머지 데이터를 복원하는 것은 여전히 가능합니다. 모든 데이터를 collabnet으로 보내고 그들로부터 지원을 받아야 할 수도 있습니다. 맹글링된 데이터 파일을 새로운 작업 저장소로 복원합니다.
이제 가장 최근 업데이트를 가진 사람에게서 "svn 내보내기"라고 말합니다. 이는 그 사람이 내보낼 수 있는 백업 복사본을 가지고 있음을 의미합니다. 이것이 사실입니까, 아니면 작업 사본과 혼동했습니까?
답변3
Mark가 위에서 말했듯이 (서버에서) 저장소 덤프가 없으면 기록을 구성할 수 없습니다. SVN 체크아웃에는 체크아웃된 위치의 팁만 포함됩니다. 죄송합니다. 귀하는 SOL입니다. 이것이 사람들이 분산 소스 제어를 좋아하는 이유인 것 같습니다. 우리 회사에서는 하루에 두 번씩 svn diff를 Amazon s3에 보내도록 설정했습니다.
답변4
첫째: SVN-Repo를 백업하지 않는 것은 고통스러운 일이며 절대 일어나서는 안 됩니다. 하지만 나에게도 같은 일이 일어났습니다. 임시 파일이나 기타 소스가 없는 파일을 체크인하고 싶지 않기 때문에 수천 개의 파일을 파일 단위로 다시 추가하기 시작했습니다.
거의 모든 기록이 손실됩니다. 하지만마지막 체크인 상태가 손실되지 않았습니다.! 마지막 체크인 상태를 얻을 수 있었기 때문에 새 저장소는 이전 저장소와 비슷했고 마지막 차이점도 얻었습니다!
이것이 내 요리법입니다.
- 지역 결제를 백업하세요
- 지역 계산대를 정리하세요. 다음을 참조하세요.스크린샷 svn-cleanup_to_last_state
- 새 저장소 생성
- 새로운 빈 폴더로 새 저장소를 체크아웃하세요.
- 이전에 정리된 복사본을 새 폴더에 복사합니다.
- 단순히 모든 파일을 추가
- 그것을 저지르다
- 1의 백업으로 새 체크아웃 폴더를 덮어씁니다.
이제 이전과 마찬가지로 마지막 차이점과 버전이 지정된 파일만 포함하여 모든 파일을 갖게 되었습니다.