미리 이야기를 먼저 하자면 “알고 있다. GIT 쓰면 된다.” 하지만 SVN을 안 쓸 수 없는 상황이란게 생기더라. 상황이 생겼으니 해결을 해야 하는게 인지상정.
사건 : SVN 이전해야 하는 이슈 발생
이전 사용했던 환경 : Windows에 CollabNetSubversion-server-1.8.11-1-Win32 으로 svn server를 설치해서 사용
옮겨가야 하는 환경 : Synology DS 920+, DSM 7.1
STUDY
- SVN은 REVISION의 증가에 따른 증분 저장 ( GIT은 스냅샷 저장 )
- 중간에 Revision이 깨지면 연결 고리가 끊어진 것으로 봐야 한다.
- 이 고리가 끊어지면 svnadmin dump도 svnsync도 글러먹은 상태
- 최신 버전을 받더라도 오래전에 생성된 파일이라면 앞으로 앞으로 거슬러 올라간다.
문제 1
문제 2
- 특정 REVISION이 COPY를 하려고 하면 CRC에러를 낸다.
- DUMP가 만들어지지 않음.
- VisualSVN에서 경로로 import 하는 것도 안 됨.
TRY 1
- DUMP
- svnadmin dump file:///E:/svn_backup/myproject > svn_dump.dump
- 실패
- CRC파일을 읽을 수 없어서 DUMP가 만들어지다가 중간에 오류 발생
- 혹여 덤프가 만들어졌더라도 REVISION이 20000이 넘어가서 DUMP를 만드는데 이틀 이상 걸릴 것이라고 예상
- 증분 DUMP
- svnadmin dump --incremental -r 20001:HEAD file:///E:/svn_backup/myproject > 20221207_20001_HEAD.dump
- 0 - 5000, 5001-10000, 10001-15000, 15001-20000, 20001-HEAD까지 분할로 증분 DUMP를 만들어서 문제가 있는 곳을 회피하는 방식을 생각 함
- 실패
- 만일 문제가 있는 REVISION이 3030 이라고 할 때 3031, 3032, 3040, 3052 REVISION이 3030에 포함된 파일을 필요로 할 때 똑같이 에러가 발생. 3030에 있는 파일이 필요한 REVISION을 모두 패스해야 해서… 이건 불가능.
TRY 2