기록, 레이블 등이 포함 된 두 개의 SVN 저장소를 Mercurial로 마이그레이션하는 도구를 찾고 있습니다.
TortoiseHg (Windows x32)를 사용하고 있으므로 ConvertExtensions가 삭제됩니다. Linux 상자 ( hgsvn ) 에서이 프로세스를 수행하는 방법에 대한 정보가 있지만 사용 가능한 Linux 시스템이 없습니다.
Windows에서 이러한 Python 스크립트를 사용할 수 있습니까? 그렇다면 어떻게해야합니까? 또는이 프로세스를 수행하는 데 사용할 수있는 다른 도구는 무엇입니까?
기본적으로 SVN 프로젝트를 Mercurial로 어떻게 변환 할 수 있습니까?
답변
이 문제를 직접 해결해야했습니다. VisualSVN Server를 호스팅하는 별도의 Windows 서버가있는 Windows XP 시스템이 있습니다.
또한 TortoiseHG 와 CollabNet Subversion Command-Line Client가 설치되어 있습니다 .
<Enable Convert Extension w/ Tortoise Hg 2>
TortoiseHg 2.0을 사용하면 변환 확장을 그 어느 때보 다 쉽게 사용할 수 있다는 의견을 지적 해 주신 bgever 에게 감사드립니다 . 그가 말했듯이
TortoiseHG 2.0을 사용하면 훨씬 간단 해졌습니다. 시작 메뉴에서 TortoiseHG Workbench를 시작합니다. 파일-> 설정을 선택하십시오. 목록에서 확장을 선택하십시오. ‘변환’확인란을 선택하고 확인을 클릭합니다. 그게 다야! 더 이상 구성 파일을 생성하고 파일 시스템에서 검색 할 필요가 없습니다. – bgever 3 월 11 일 7:56
</Enable Convert Extension w/ Tortoise Hg 2>
<Enable Convert Extension Manually>
저장소를 SVN에서 HG로 변환하기 위해 다음 단계를 따랐습니다.
1) C : \ Program Files \ TortoiseHg \ Mercurial.ini를 엽니 다.
편집하다
참고로-Tortoise Hg가이 파일을 다음으로 마이그레이션했습니다.
- XP 이하-C : \ Documents and Settings \ USERNAME \ Mercurial.ini
- Vista 이상-C : \ Users \ USERNAME \ Mercurial.ini
해당 파일은 대부분 비어 있으며 여기에서 재정의하려는 항목 만 나열합니다. 그것이 당신이 가진 것이라면, 파일의 맨 끝에 다음 두 줄을 추가하십시오.
[extensions]
convert =
2) 다음으로 시작하는 줄 검색
[확장자]
3) 그 아래에는 각 줄에 세미콜론 (;)으로 주석 처리 된 키워드 목록이 표시됩니다.
4) 말하는 줄 찾기
; 변환 =
세미콜론을 삭제하여
변환 =
</Enable Convert Extension Manually>
5) 명령 프롬프트를 열고 새 hg 폴더를 만들려는 디렉터리로 이동합니다 (이 프로세스는 명령 프롬프트가 열려있는 디렉터리에 yoursvnreponame-hg라는 새 폴더를 만듭니다).
6)이 명령 사용
hg 변환 파일 : /// y : / yoursvnreponame
변환 도구가 네트워크 리포지토리에 문제가있을 수 있다는 것을 알았으므로 여기에 드라이브를 매핑해야했지만 이것은 잘 작동했습니다.
답변
- localhost에서 svn 서버 시작
- hg 변환 svn : // localhost / your_repo
- 완료, svn 바인딩은 file : // 프로토콜에만 필요하기 때문입니다.
답변
Mercurial에는이를 위한 변환 확장 기능이 내장되어 있습니다.
답변
SVN Repo를 HG Repo로 변환하고 다른 서버에 복사하려면 몇 가지가 필요합니다.
- TortoiseHG가 설치되었습니다. (현재 사용중인 버전 확인)
- Python이 설치되었습니다. (현재 사용중인 버전 확인)
- Python 모듈 ( http://pysvn.tigris.org/project_downloads.html에서 찾을 수 있음) )
convert
Tortoise에 확장을 추가해야합니다 . 시작 메뉴에서 TortoiseHG Workbench를 시작합니다. 을 선택File -> Settings
합니다.Extensions
목록에서 선택하십시오 . 체크convert
체크 박스를하고 확인을 클릭합니다.
먼저 변환…
- 현재 SVN Repo가있는 폴더를 작업중인 컴퓨터에 매핑하는 것이 가장 좋습니다. (즉
\\server\folder
, SVN Repo 폴더 자체를 매핑하지 마십시오. 바로 위에 폴더를 매핑하십시오.) 매핑 된 드라이브에 다음과 같은 문자를 입력하십시오.Y:\
- 명령 프롬프트를 열고 다음을 입력하십시오.
CD /D Y:\
- 상기
Y:\
프롬프트 :hg convert y:/RepoName
앞으로 및 뒤로 슬래시의주의 (현재 리포의 이름을 사용). 명령에있는 것은 슬래시입니다. 또한 이름에 공백이 있으면 이름을 따옴표로 묶으십시오. (예Y:/"My Repo folder"
) - 이제 실행 중이어야하며 이전 폴더와 함께 다른 폴더를 생성합니다. 그리고 hg 폴더가 안에 있어야합니다. 시작되지 않으며 시작하지 마십시오!
- 변환이 완료되었습니다.
둘째, 복제…
- TortoiseHG Workbench를 엽니 다. 이동
File -> Clone Repository
- 소스 : 변환 된 저장소의 전체 경로를 입력하십시오.
- 대상 : 리포지토리를 복제 할 전체 경로를 입력합니다. 복제 프로세스에서 폴더를 만들고 초기화하므로 새 대상에 폴더를 만들 필요가 없습니다.
- 복제 된 새 폴더에 권한을 추가합니다.
- 완료되었습니다 !!!
답변
아무도 아직 언급하지 않습니다 거의 두통없이 할 수있는 hgsubversion ( Extension Wiki )을 (희귀 한 경우와 특정 트리 제외).
확장을 추가하고 활성화하고 hg clone SVN_REPO
지역 수은 저장소에
답변
이것은 TortoiseHg FAQ에 있습니다 .
Subversion 저장소를 Mercurial로 어떻게 변환 할 수 있습니까?
svn-win32-1.4.6 명령 줄 도구를 설치 한 다음 경로에 추가해야합니다. 그런 다음 변환 확장을 활성화해야합니다. 이 시점에서 ‘
hg convert
‘명령을 사용 하여 변환을 수행 할 수 있어야합니다 . 변환 확장에 대한 문제 / 질문은 Mercurial 메일 링리스트 또는#mercurial
에 직접 보내주십시오irc.freenode.net
.
그래서 분명히 가능합니다. Linux를 사용하고 있으므로 직접 시도하지 않았습니다.
답변
방금 HTTP 인증을 사용하는 원격 SVN 저장소를 Mercurial 저장소로 변환했으며이를 수행하는 방법에 대한 문서가 많지 않습니다. Mercurial 소스를 다운로드하고 소스 패키지를 사용하여 독립 실행 형으로 설치해야 SVN 바인딩이 올바른 방식으로 작동합니다.
다음과 같이 설치했습니다.
python setup.py install
내 Server 2003 상자에서 잘 작동했습니다. 이제 다음과 같은 작업을 수행하여 SVN 저장소를 올바른 방법으로 변환 할 수 있습니다.
python c:\python26\scripts\hg convert <remote repo>
Mercurial 사이트의 ConvertExtension에 대한 문서는 매우 명확하지는 않지만 다음과 같이 말합니다.
Subversion 바인딩을 [Mercurial의] 내장 Python 라이브러리에 설치할 수있는 방법이 없습니다. 따라서 독립형 Python 위에 설치된 Mercurial을 사용해야합니다.
이제 변환에는 독립 실행 형 버전을 사용하고 실제 VCS 작업에는 TortoiseHg를 사용합니다.
