svn을 사용하다 보면, 형상관리로 인해서 기록이 누적되어 불필요한 용량들이 너무너무너무 많아 집니다.
실제로 제 개인적으로는 최대 한달 이상이 넘으면 그 이전 자료는 불필요하다고 생각이 듭니다.
당연히 자료가 많이 남아 있으면 좋겠지만, 자원은 한정적이다 보니 버전 관리는 어느정도 되어야 한다고 생각됩니다.
개인정보보호법이나 정보통신망법에서 이야기한 로그 기록은 svn과는 좀 다른 상황이긴 하죠~
회사에서 svn을 사용하는데, 사용하다보니 역시나 자원의 저장 공간 문제가 발생했습니다.
원하는 것은 형상관리 버전이 13,000번이 넘어서, 13,000번 이전 버전은 지우고 싶어하더군요.
그래서 제 PC에 하이퍼바이저를 이용하여 개인 가상화 서버를 설치하여 테스트 한 내용을 공유합니다.
(인터넷으로 아무리 검색해봐도 제대로 알려주는 곳이 없어서 ㅠㅠ 정말 힘들게... 익힌 내용입니다.)
테스트 목적
ㅇ 현재 형상관리 버전에서 오래된 형상관리 버전은 지우고, 원하는 형상관리 버전부터 남긴다.
테스트 결과
1. 현재의 svn에서 원하는 형상관리 버전까지 데이터를 export 한다.
2. 새로운 svn repository를 생성하여, export한 데이터를 import 시킨다.
3. 이전 svn repository 이름을 변경한다.
4. 새로운 svn repository 이름을 이전 svn repository 이름으로 변경한다.
5. client의 PC에서 기존 svn repository의 폴더에서 숨은 폴더인 .svn 폴더를 삭제한다.
6. client의 PC에서 cehckout을 하여 svn 폴더에 다시 접속한다.
7. 새로운 svn의 repository 데이터를 확인 후 기존 repository의 svn 폴더를 삭제한다.
[서버 작업]
운영 중인 svn을 중지합니다.
서비스 중지 후 새로운 repository를 생성합니다.
명령어: svnadmin create C:\Repositories\new_ksm_svn
새롭게 만든 repository에 기존의 repository 데이터를 export 하여 import 합니다.
이 명령어에서 기존 데이터의 형상관리 번호를 확인하여 원하는 만큼의 숫자를 입력해줘야 합니다.
ㅇ 명령어: svnadmin dump -r 8:HEAD C:\Repositories\ksm_svn | svnadmin load C:\Repositories\new_ksm_svn
- svnadmin: svn 관리자 명령어
- dump: 데이터를 dump 파일로 만듬
- r8:HEAD: 형상관리 버전 8번부터 최근(HEAD)까지
- C:\Repositories\ksm_svn: repository 경로
- |: 해당 기호는 다음 명령어를 받아들이겠다는 표시입니다.
- svnadmin: svn 관리자 명령어
- load: dump 로 만든 파일을 불러오겠다
- C:\Repositories\new_ksm_svn: 새롭게 만든 repository 경로
버전 5부터 8까지 백업 및 복구하는 명령어로 정상적으로 실행된 결과를 확인 할 수 있습니다.
기존 repository 이름 변경하기
(폴더 명을 바꾸거나, repository 이름을 변경하면 자동으로 동시에 바뀝니다.)
- ksm_svn: old_ksm_svn으로 이름 변경
- new_ksm_svn: ksm_svn으로 이름 변경
svn 서비스를 다시 시작 합니다.
새롭게 만든 ksm_svn repository에 사용자 권한을 부여합니다.
새로 만든 repository여서 사용자 권한이 없습니다.
사용자 권한 추가 후 "확인" 선택
[클라이언트 PC 작업]
저는 D:\ksm 이라는 폴더를 svn 폴더로 사용 중입니다.
(혹시 폴더에 다른 표시가 있다면 무시하셔도 됩니다.)
ksm이라는 svn의 폴더 안에 있는 .svn 폴더를 지웁니다.
삭제 완료
(파일이나 폴더에 다른 표시가 있으면 ".svn" 폴더 삭제 후 5초 이내에 아래와 같이 표시가 사라질 겁니다.)
ksm 폴더에서 팝업 매뉴 중 "SVN Checkout..." 매뉴를 선택합니다.
.svn 폴더를 지우고 나서 5초 전후로 ksm 폴더에 표시되어 있는 녹색 v 체크가 사라집니다.
해당 표시가 사라진 후에야 매뉴가 보일 것입니다. (근데 나는 왜 보이지.....)
Checkout Directory의 정보를 보면 svn 서버의 repository 폴더 명이 보일 겁니다.
저는 D:\ksm 폴더에 자료를 저장할 것이기 때문에 \ksm_svn은 삭제하였습니다.
내용 확인 후 "OK"를 선택하시면 됩니다.
새롭게 svn에 연결하여 아래 화면이 발생합니다.
"Checkout"을 선택하시면 됩니다.
기존 전체 버전관리가 8이였는데, 5부터 분리를 하였기에 새로운 svn에는 버전이 4개가 있습니다. (5, 6, 7, 8)
형상관리 버전을 확인하면 변경된 형상관리 버전을 확인할 수 있습니다.
ㅇ 변경 전
ㅇ 변경 후
※ 버그가 있네요.
새로운 형상관리 svn의 기록 중 1번은 정상적으로 백업이 안되네요...
dump 명령어로 이전할때 첫번째 자료만 이상하게 된다면 해당 순번의 버그를 감안하고 형상관리 버전을 백업해야 할 듯 합니다.
'기술 노트 > SVN' 카테고리의 다른 글
VisualSVN의 새로운 repository 경로 추가 방법 (0) | 2023.07.17 |
---|---|
SVN에서 lock이 걸린 경우 (0) | 2023.07.05 |
svn 서버 ip 변경하기 (0) | 2023.06.21 |
svn 폴더 동기화 하기 (0) | 2023.06.21 |
SVN 연결 폴더 초기화 하기 (0) | 2023.06.21 |