git 저장소를 mercurial로 어떻게 변환합니까?


104

소스 코드 저장소로 git을 사용하여 Java 응용 프로그램을 개발하고 있습니다. 다른 자바 개발자와 프로젝트를 공유하고 싶은데 hg가 가장 많이 사용되는 것 같습니다.

내 질문은 git 저장소를 hg로 어떻게 변환합니까?

인터넷 검색을 시도하면 "git을 hg로 변환"하고 모든 검색 히트는 hg에서 git로 변환하는 것입니다. TortoiseHg 도 사용하고 있습니다.


16
대신 mercurial에서 git로 변환해야하는 경우 : stackoverflow.com/questions/883452/…
Christian Oudard 2009

마지막 단락은 의미가 없습니다. 오타?
tshepang

1
@Tshepang : "git-> hg"를 원했지만 "hg-> git"을 얻었습니다. 나는이 질문을 편집 할 것이지만 나는 지금 대답이 있기 때문에 사람들이 어쨌든 그것을 얻은 것 같다.
Spoike

답변:


79

hg convert유틸리티는 설치 후 기본적으로 켜져 있지 않습니다. 그렇게 설정하려면 .hgrc파일에 다음을 추가 하십시오.

[extensions]
hgext.convert=

Windows에서 TortoiseHg 를 사용하는 경우이 파일은 홈 디렉토리에 mercurial.ini. 이 설정 변경 후 hg convert유틸리티 를 사용할 수 있습니다 .


5
Ubuntu에서 시스템 전체 변경은 / etc / mercurial / hgrc
Sentient

1
Windows에서는 TortoiseHg를 사용하여 전역 설정 아래의 확장 섹션에있는 TortoiseHg 셸 확장 메뉴에서 전역 설정 메뉴 항목을 사용하여 활성화 할 수 있습니다.
Umar Farooq Khawaja

변환을 위해 hg가 git에 액세스해야한다고 지정하지 않았기 때문에 설명이 다소 불완전합니다. 그렇지 않으면 "필요한"git "도구를 찾을 수 없습니다"라는 오류 메시지가 표시됩니다.
jmd

41

Mercurial Convert 확장 을 사용하여

.hgrc또는 확장을 활성화 하려면 다음 줄을 추가하십시오 .

[extensions]
hgext.convert=

그리고 입력

cd src
hg convert --datesort . dst

( 몇 가지 문제가 발생할 수 있지만 ...)

참고 :: metrix 는 이것이 작동하지 않을 수 있다고보고합니다.

     hg convert --datesort src dst

참고 :hg convert 소스 디렉토리가 아닌 디렉토리에서이 명령을 수행하면 버그가 발생합니다 .
다음과 같은 오류가 발생합니다.

abort: cannot read tags from git-repo4/.git

Windows XP에서 git 1.7.9 및 Mercurial 2.6.2로 확인


그 대답 .hgrc에 연결하는 대신 설정이 포함되어 있다면 포괄적 일 것입니다.
fbmd

17

http://hg-git.github.com/ 유틸리티 : Mercurial 용 Git 플러그인 을 살펴볼 수 있습니다 .

이 플러그인은 원래 GitHub 사람들이 개발했으며 git <-> mercurial에서 무손실로 변환 할 수 있습니다. 이론적으로는 hg 저장소를 복제 할 수도 있습니다.


2
이것은 저장소를 변환하는 것보다 더 나은 솔루션입니다. 더 자세한 정보가 있다면 더 나은 대답이 될 것입니다. 한 줄 대답은 쓸모가 없습니다.
naught101

1
@ naught101, 제안 해 주셔서 감사합니다. 직접 읽을 수 있도록 여기에 더 많은 정보를 추가했습니다.
vdboor

hg-git을 설치하고 설정 한 후 hg gexport 및 hg gimport를 사용하여 둘 사이를 변환하십시오.
CAD bloke

9

Mercurial 상태를 통한 분산 개정 제어 :

convert에서 지원하는 개정 제어 도구는 다음과 같습니다.

  • 파괴
  • CVS
  • 힘내
  • Darcs

그렇다면 추가 도구가 필요하지 않을까요?


1
불행히도 "hg 변환"은 tortoisehg에서 사용할 수 없습니다
Spoike

6

변환 확장 기능이 작동 할 수 있지만 그렇지 않은 경우 분산 된 다양한 SCM간에 변환하기위한 범용 도구 인 재단사 를 확인 하는 것이 좋습니다.


2

당신은 그것을 전혀 변환 할 수 없습니다. Hg-Git 플러그인을 사용하십시오 ! 아무도 그 차이를 알지 못할 것입니다.


2

새로운 플레이어 : git-remote-hg . git에서 기본 브리징 지원을 제공합니다.

다만:

hg init ../hgrepo
git push hg::$PWD/../hgrepo

1

Git모든 Git 리포지토리가 있는 폴더 Git2Hg.cmd에서 다음 내용으로 파일을 만들었습니다 .

set PATH=%PATH%;C:\Program Files\TortoiseHg
set PATH=%PATH%;C:\Program Files\Git\bin
hg convert %1

이제 CMD에 다음을 입력하여 Git 저장소를 Hg로 변환 할 수 있습니다.

Git2Hg "Folder Name"

0

Hg-Git 플러그인 또는 Windows 용으로 사용하거나 한 곳에서 다른 곳으로 마이그레이션하는 경우 여기를 방문하십시오. 2 [Windows GIT]

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