내 목표는 이전 SVN 저장소를 Windows VisualSVN 서버에서 Linux Apache SVN 서버로 전송하는 것입니다. 첫 번째 단계는 svnadmin dump 명령을 사용하여 모든 저장소를 덤프하는 것이었습니다. 그런 다음 해당 덤프를 Linux 서버에 로드했습니다. 저장소를 가져올 때 오류가 없었습니다. 그러나 일부 파일의 경우 변경 내용을 커밋할 때 500 내부 서버 오류가 발생합니다.
무엇이 잘못되었는지 확인하기 위해 오류를 생성한 파일 중 일부를 웹 브라우저에서 열었습니다. 이 파일의 마지막 몇 줄이 손상되었음을 발견했습니다. 손실된 데이터는 없지만 파일 끝에 이상한 문자가 있습니다. "???"로 표시됩니다. 내 웹 브라우저에서.
여러 번 내보내기를 시도했지만 모든 내보내기에서 동일한 문제가 발생합니다. 저장소나 덤프를 수정하는 것이 가능한가요? 이런 일이 발생하지 않도록 어떻게 방지할 수 있는지 아시나요?
답변1
- AFAICR, 일부 버전 전에 저장소의 구조|데이터|저장에 몇 가지 변경 사항이 있었습니다. VisualSVN 서버와 아파치 측의 Subversion 버전이 동일하다면(예: VisualSVN 서버를 업그레이드하는 경우) 더욱 강력해질 것입니다. 필요함)
- FS-view에서 VisualSVN 서버의 리포지토리와 Linux의 Apache는 동일합니다. 단지 파일이 있는 디렉터리와 일부 리포지토리가 아닌 파일만 있을 뿐입니다. 따라서 가장 쉬운 경우에는 RepoRoot의 트리를 새 서버로 복사하고(새 OS 요구 사항에 따라 소유자 및 권한 수정), (이전) passwd 파일을 추가하고(필요한 경우) repo-tree 외부에 배치하고 (이전) 인증을 수행할 수 있습니다. -file (필요한 경우), svn 관련 부분을 VisualSVN 서버의 httpd.conf에서 새 환경으로 마이그레이션하고(대부분 경로 관련 필요한 모든 변경 사항을 적용하여) 새 위치에 저장소를 갖습니다.
추신: 나는수행큰 골칫거리 없이 게으른 "복사-붙여넣기" 마이그레이션
커밋 시 500 내부 서버 오류 발생
두 가지 주된 이유가 있을 수 있습니다. 사용자 기반이 마이그레이션되지 않았거나 인증 파일에 ACL이 잊혀졌거나(아마도 누락되었거나 비어 있음) 저장소 덤프가 이러한 파일을 전송하지 않습니다.