v2를 v3 FSFS 서브 버전 파일 시스템으로 업그레이드하는 방법


9

첫째, TortoiseSVN을 사용하여 분기와 트렁크를 다시 통합하려고하지만 "병합 정보를 쿼리하려면 FSFS 파일 시스템 스키마 버전 3이 필요합니다. 파일 시스템 E : / MyRepository /는 버전 2 만 사용합니다"라는 오류 메시지가 표시됩니다.

이전 버전의 Subversion에서 분기를 다시 통합 할 수 없었습니까? 아니면 다른 방법이 있습니까?

어쨌든 파일 시스템을 버전 2에서 버전 3으로 어떻게 업그레이드 할 수 있습니까?


답변:


6

서버가 실행중인 Subversion 버전을 지정하지 않았습니다. 그러나 질문에 제공 한 메시지에 따르면 1.4.x 버전 이상일 수 있습니다. 1.4.x에서 1.5.x로 변환하기 위해 업그레이드 명령이 제공되었는지 여부는 기억 나지 않지만 버전 2에서 버전으로 저장소를 가져 오는 확실한 파일 방법은 덤프 및로드입니다. 그러나 그다지 중요하지는 않습니다. 어쨌든 1.6.x를 설치하여 최신 버전을 사용하고 싶을 것입니다. 따라서 다음 단계를 수행해야합니다.

  • 아직 Subversion 1.6.x로 업그레이드하지 않은 경우
  • svnadmin dump를 사용하여 기존 리포지토리 덤프
  • 새로운 저장소를 만들고 _new라고 부릅니다.
  • svnadmin load를 사용하여 이전 덤프로 새 저장소를로드하십시오.
  • 기존 저장소에서 새 저장소로 uuid 파일을 복사하십시오.
  • 이전 저장소의 이름을 _old로 바꿉니다.
  • 새 저장소의 이름을

구체적인 예 는 Subversion FAQ http://subversion.apache.org/faq.html#dumpload 를 참조하십시오 .

그렇게하면주의를 기울여야하며 uuid 파일은 고객을 놀라게하지 못하게합니다. 그래도 svn 업데이트를 수행하십시오.


2
에서 svnadmin help load메시지 : --force-uuid : set repos UUID to that found in stream, if any. 한마디로 : 파일을 재생할 필요가 없습니다
Hubert Kario

@ 허버트 카리오 : 예, 커맨드 라인에는 그 옵션이 있습니다. 그러나 모든 GUI 클라이언트가하는 것은 아닙니다. 그리고 서버 측에서 할 수 있다면 사용자가 더 쉽게 할 수 있습니다. 그러나 나는 다음에 그 문제에 부딪 칠 때 그 스위치를 명심할 것입니다. 팁 고마워!
jgifford25

새 저장소를 작성할 때 권한 설정에주의하십시오. 예를 들어, 저장소를 액세스하는 경우를 통해 아파치 mod_svn, 사용자 "WWW"에서 아파치 실행, 그룹 "www가"당신은 "프레드"로 로그인, 당신은 아마 필요가 뭔가 같은 : sudo chown -R fred:www myrepositorya로 다음 sudo chmod g+wmyrepository/db/repcache.dbmyrepository/db/uuid
xgretsch

8

Subversion 저장소를 업그레이드하는 데 덤프 /로드가 필요하지 않습니다. svnadmin upgrade 명령을 사용하십시오.

svnadmin upgrade <path-to-repos>

참고 : svnadmin upgrade "저장소의 무결성을 유지하면서이 작업을 수행하는 데 필요한 최소한의 작업 만 수행합니다. 덤프 및 후속로드가 가장 최적화 된 저장소 상태를 보장하지만 svnadmin 업그레이드는 수행하지 않습니다." -svnadmin 업그레이드 설명서 도 참조하십시오


1
그러나 이는 "저장소의 무결성을 유지하면서이 작업을 수행하는 데 필요한 최소한의 작업 만 수행합니다. 덤프 및 후속로드가 가장 최적화 된 저장소 상태를 보장하지만 svnadmin 업그레이드는 수행하지 않습니다." -svnbook.red-bean.com/en/1.7/svn.ref.svnadmin.c.upgrade.html
Jörg

1
또한 svnadmin upgrade를 사용하여 "항상 리포지토리를 항상 백업해야합니다"반면 덤프 /로드를 사용하면 암시 적으로 백업해야합니다.
Jörg

5

Ivan은 좋은 팁을 가지고 있으며 시도해 보았습니다. 매우 간단합니다.

svnadmin upgrade <path-to-repos>

다른 사람들에게 유용 할 수있는 Ivans 예제에서 놓친 한 가지는 다음과 같습니다.

전의.

<path-to-repos> = C:\repos\theRepo
(ie. NOT C:\repos\theRepo\db)

dbnadmin을 db 디렉토리가 아닌 db 디렉토리를 포함하는 디렉토리로 지정하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.