VisualSVN의 resository의 저장공간 경로가 1개이면, 아래의 문제에 직면한다면... 참 난감합니다.

아래는 용량이 부족한 상황으로 새로운 저장공간을 확보하여도, 추가할 수 없는 상황입니다.

  1. 기존 용량의 repository에 용량이 부족하여, 새로운 디스크를 기존의 repository 에 추가할 때

  2. 용량이 부족하여, A repository의 자료를 B repository로 최근 자료의 일부를 백업 할때

 

VisualSVN의 repository 저장 경로는 아래와 같이 단일 경로 입니다.

 

그래서 방법이 없나 고민하다가 찾아냈습니다!!!

알아낸 방법을 사용 할 경우가 있을지는 모르겠으나, 엔지니어로써 찾아내서 기쁘네요ㅎㅎㅎ

 

 

[간단 정리]

1. repository의 저장 경로를 새롭게 추가할 디스크가 있는 경로로 변경한다.

2. 새로운 repository를 생성한다.

3. 기존 repository 경로로 다시 설정을 변경한다.

※ 이렇게 번거롭게 하는 이유는 repository의 폴더 권한 때문입니다.

4. 기존 repository 경로에 아래 명령어를 이용하여 심볼릭 링크를 만든다.

  - 명령어: mklink /d "링크" "원본"

5. VisualSVN의 httpd.conf 파일을 open 한다.

  - 경로: C:\Program Files\VisualSVN Server\conf

6. <Location "/svn/">을 검색으로 찾아서 <location "/svn/"> </Location> 복사하여 바로 아래에 붙여 넣는다.

7. 붙여넣은 <Location "/svn/">과 SVNParentPath C:\Repositories"를 변경한다.

  - <Location "/svn2/">, SVNParentPath C:\test_Reposiroty"

8. repository svn_path_test의 경로에 접근권한을 부여한다.

9. VisulSVN의 서비스를 재시작한다.

10. 테스트

 

 

[상세 설명]

1. repository의 저장 경로를 새롭게 추가할 디스크가 있는 경로로 변경한다.

  - 저는 새로운 디스크가 아닌 별도의 공간을 추가하는 방법으로 테스트를 진행했습니다.

 

2. 새로운 repository를 생성한다.

  - 저는 svn_path_test 라는 repository를 생성했습니다.

 

- svn_path_test의 repository 권한은 아무 것도 주지 않았습니다.

  (기존 생성한 기본 계정 정보는 storage의 경로를 C:\Repositories로 설정해야 불러 올 수 있습니다.)

 

※ svn_path_test 폴더 권한:

  - 아래의 권한은 svn 설정의 storage 경로 설정 후 repository 생성시에만 부여 됩니다.

 

3. 기존 repository 경로로 다시 설정을 변경한다.

 

4. 기존 repository 경로에 아래 명령어를 이용하여 심볼릭 링크를 만든다.

  - 명령어: mklink /d "링크" "원본"

 

5. VisualSVN의 httpd.conf 파일을 open 한다.

  - 경로: C:\Program Files\VisualSVN Server\conf

 

6. <Location "/svn/">을 검색으로 찾아서 <location "/svn/"> </Location> 부분을 복사하여 바로 아래에 붙여 넣는다.

 

7. 붙여넣은 <Location "/svn/">과 SVNParentPath C:\Repositories"를 변경한다.

  - <Location "/svn2/">, SVNParentPath C:\test_Reposiroty"

 

8. repository svn_path_test의 경로에 접근권한을 부여한다.

 

9. VisulSVN의 서비스를 재시작한다.

 

10. 테스트

  - 내 PC에서 svn 폴더와 동기화 할 폴더를 생성 (d:\svn_path_test 테스트 진행)

  - SVN Checkout...을 이용하여 계정 설정 및 폴더 동기화 진행

  - 폴더 및 계정 정보 확인 후 후 OK 선택

  - 저는 기존 ksm 계정을 계속 사용하여 계정 로그인 정보가 나오지 않았습니다.

  - 정상적으로 완료가 되면 아래와 같이 형상관리 버전이 0 으로 확인할 수 있습니다.

  - 실제 svn_path_test repository 경로와 심볼릭 링크로 설정된 svn_path_test 경로의 형상관리 버전 시간 비교입니다.

  - 경로는 다르지만, 형상관리버전 파일의 시간이 정확히 일치하는 것을 볼 수 있습니다.

 

위의 방법으로 SVN에 추가 저장 공간을 확보하여 저장 공간을 늘리거나, 새로운 백업 시 유용하게 사용하시기를 바랍니다.

'기술 노트 > SVN' 카테고리의 다른 글

원하는 형상버전으로 분리 하기  (0) 2023.07.14
SVN에서 lock이 걸린 경우  (0) 2023.07.05
svn 서버 ip 변경하기  (0) 2023.06.21
svn 폴더 동기화 하기  (0) 2023.06.21
SVN 연결 폴더 초기화 하기  (0) 2023.06.21

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

위의 화면처럼 locked이 걸린 경우 lock을 풀어줘야 합니다.

 

SVN 사용시 숨김폴더로 .svn 폴더가 생성됩니다.

해당 폴더에  wc.db 파일이 존재하며, 해당 파일을 열어 lock 걸린 부분을 확인하고 해제해야 합니다.

해제를 위한 방법을 아래를 참고하시면 됩니다.

 

아래 사이트에서 SQLite를 설치합니다.

https://sqlitebrowser.org/

 

설치 후 wc.db 파일을 불러옵니다.

 

wc.db 파일을 불러오면 테이블 중 WC_LOCK가 있습니다.

 

마우스 오른쪽 버튼을 눌러 "테이블 보기"를 하면 데이터가 "-1"이 있다면 지워합니다.

 

SQL 실행 → "DELETE FROM WC_LOCK" 입력 후 실행

 

실행 결과 확인 후 "변경사항 저장하기"으로 저장을 합니다.

 

이후 다시 "SVN Commit..."을 실행하면 됩니다.

SVN 서버의 IP가 변경되는 경우 아래 옵션을 이용하여 변경이 가능합니다.

SVN 동기화 폴더 → 팝업 메뉴 → TortoiseSVN → Relocate... Click

 

새로운 SVN 서버 주소로 변경 → OK Click

  - From URL: 기존 SVN 서버 주소

  - To URL: 새로운 SVN 서버 주소

 

새로운 SVN 서버에 접속하기 위해서 계정 정보 입력 → OK Click

 

변경 팝업 메시지 확인

 

변경된 SVN 서버의 Repository Browser 접속 확인

'기술 노트 > SVN' 카테고리의 다른 글

원하는 형상버전으로 분리 하기  (0) 2023.07.14
SVN에서 lock이 걸린 경우  (0) 2023.07.05
svn 폴더 동기화 하기  (0) 2023.06.21
SVN 연결 폴더 초기화 하기  (0) 2023.06.21
svn에 폴더 연결하기  (0) 2023.06.21

동기화 하기 전 해당 Repository 폴더 내용 확인

 

동기화 할 폴더에서 팝업 메뉴 실행 → SVN Commit... Click

 

파일 동기화 하기 전 메시지 입력 (왜 동기화를 했는지 파악하기 위함)

동기화할 파일 선택 → OK Click

 

SVN 동기화 완료

(몇 번 더 테스트 하는 바람에 AT revision이 1이 아니라 3이네요)

 

SVN 서버의 Repository

 

동기화하는 폴더에 변경이 생기면 아래와 같이 폴더에 "!" 표시가 보입니다.

이때 "SVN Commit" 을 하시면 됩니다.

'기술 노트 > SVN' 카테고리의 다른 글

SVN에서 lock이 걸린 경우  (0) 2023.07.05
svn 서버 ip 변경하기  (0) 2023.06.21
SVN 연결 폴더 초기화 하기  (0) 2023.06.21
svn에 폴더 연결하기  (0) 2023.06.21
Repository 생성하기  (0) 2023.06.21

동기화 할 폴더에서 팝업 메뉴 실행 → SVN Checkout... Click

 

OK Click

 

Checkout Click

 

OK Click

'기술 노트 > SVN' 카테고리의 다른 글

svn 서버 ip 변경하기  (0) 2023.06.21
svn 폴더 동기화 하기  (0) 2023.06.21
svn에 폴더 연결하기  (0) 2023.06.21
Repository 생성하기  (0) 2023.06.21
TortoiseSVN 서버 구축 - Client  (0) 2023.05.19

원하는 곳에 동기화를 진행할 폴더 생성

 

해당 폴더에서 팝업 메뉴를 선택 → TortoiseSVN → Repo-browser 선택

 

생성한 Repository 입력

기존 생성했던 Repository  정보

 

https 이기 때문에 인증서 오류가 나옵니다.

→ Accept the certificate permanently 선택

 

ID / Password 입력

 

Repository Browser 로그인 성공 → OK Click

 

'기술 노트 > SVN' 카테고리의 다른 글

svn 폴더 동기화 하기  (0) 2023.06.21
SVN 연결 폴더 초기화 하기  (0) 2023.06.21
Repository 생성하기  (0) 2023.06.21
TortoiseSVN 서버 구축 - Client  (0) 2023.05.19
VisualSVN 서버 구축 - Server 설치  (0) 2023.05.19

Create New Repository... Click

 

Regular FSFS repository Click

 

Repository 이름 입력

 

Empty repository Click

 

Customize permissions Click → Custom... Click

 

Add... Click

 

Create user... Click

 

User name: ID 입력

Password: 비밀번호 입력

Confirm password: 비밀번호 재입력

입력 후 OK Click

 

OK Click

 

Permissions(권한) 선택 → 확인 Click

 

Next > Click


Create Click

 

입력 정보 및 Repository URL 확인 → Finish Click

 

Repository 생성 완료

 

'기술 노트 > SVN' 카테고리의 다른 글

svn 폴더 동기화 하기  (0) 2023.06.21
SVN 연결 폴더 초기화 하기  (0) 2023.06.21
svn에 폴더 연결하기  (0) 2023.06.21
TortoiseSVN 서버 구축 - Client  (0) 2023.05.19
VisualSVN 서버 구축 - Server 설치  (0) 2023.05.19

※ 해당 SVN을 서버로도 사용할 수 있으나, 저는 ViusalSVN으로 구축할 예정이라 Client 입장에서 설치 합니다.

 

TortoiseSVN Client 다운로드

https://tortoisesvn.net/downloads.html

 

본인에게 맞는 버전 다운로드~

파일 다운로드하여 설치

언어팩 설치

다운로드 페이지 아래로 화면을 내리면 국가별 언어팩 다운로드 가능

 

'기술 노트 > SVN' 카테고리의 다른 글

svn 폴더 동기화 하기  (0) 2023.06.21
SVN 연결 폴더 초기화 하기  (0) 2023.06.21
svn에 폴더 연결하기  (0) 2023.06.21
Repository 생성하기  (0) 2023.06.21
VisualSVN 서버 구축 - Server 설치  (0) 2023.05.19

VisualSVN Server 다운로드

https://www.visualsvn.com/downloads/

다운로드 받은 파일 실행

아래 옵션은 체크를 하지 않고 지나 갑니다. 해당 서비스는 유료로 라이선스 키가 필요합니다.

SSL 인증 방식으로

자체 인증을 진행할 경우 Create self-signed certificate

Active Directory를 이용한 인증을 할 경우 Obtain certificate from Active Directory

이전 선택한 옵션에 따라서 선택하시면 될 것 같아요.

'기술 노트 > SVN' 카테고리의 다른 글

svn 폴더 동기화 하기  (0) 2023.06.21
SVN 연결 폴더 초기화 하기  (0) 2023.06.21
svn에 폴더 연결하기  (0) 2023.06.21
Repository 생성하기  (0) 2023.06.21
TortoiseSVN 서버 구축 - Client  (0) 2023.05.19

+ Recent posts