2009-07-18 4 views
10

Mercurial을 가지고 주변에서 장난감을 만들고 싶습니다. 따라서 기존 저장소 중 하나를 변환하려고합니다.Git 저장소를 Mercurial로 변환하고 태그를 가져 오려면

hg convert myrepos myrepos-hg 

명령이 성공적으로 내 커밋을 모두 가져,하지만 Git 저장소에 표시된 8 개 정도의 태그를 함께 가져 오지 않습니다 (이나 중입니다 : 내 Mac에서 다음 명령을 실행 그 문제에 대한 가지). Mercurial에도 내 태그를 가져 오려면 설정해야하는 특수 매개 변수가 있습니까?

+1

git를 수은으로 변환 하시겠습니까? 여기에 경고의 이야기를 먼저 읽어보십시오 : http://www.gksoft.com/a/fun/hal-ibm.html –

답변

6

태그가 경량의 git 태그입니까, 아니면 주석이 달린 태그입니까? hg convert은 주석이 달린 태그 만 변환하지만, 기본적으로 git는 가벼운 태그를 만듭니다. 최근에 내 리포지토리 중 하나를 변환 할 때이 문제가 발생했습니다.

git ls-remote --tags . 

hg convert 만, ^{}에 주석 사람을 종료 태그를 변환합니다 실행 : 다음과 같이 그들이 무엇인지 확인할 수 있습니다.

  • 패치 작은 쉘 스크립트와 함께 이전의 변환

에 주석 태그에 모든 종류의

  • 변화 당신의 자식 태그를 변환 확장 파일을 변환 hgext git.py : 당신이 개 선택할 수 있습니다 git-tag에 --force 옵션을 사용하면 모든 태그에 주석을 달 수 있습니다.

  • +0

    그것이 문제였습니다. 팁 고마워! –

    3

    이것은 다소 알려진 문제입니다.

    extra = {'branch': self.tagsbranch} 
    

    에 :

    extra = {'branch': 'default'} 
    
    이을 변경하여 (또는이 위치하고 곳) 다음 파일 /usr/lib/python2.6/site-packages/hgext/convert/hg.py 패치 시도 할 수 있습니다

    그런 다음 다시 변환하십시오.

    편집 : 사물의 상태를 자세히 살펴보면, 당신이 원하는 것을하는 것이 불가능하지 않을 수도 있습니다. 더 정확하게 그것을 올바르게하는 것.

    태그가 8 개 밖에 없으므로 .hgtags 파일을 수동으로 작성하여 혼전 절약을 고려하십시오. 나중에 'hg convert'로 나중에 무엇이 있는지 알아낼 수 있습니다 (나는 눈을 pe keep하게 유지할 것입니다).

    행운.

    +0

    파일을 적절하게 수정했습니다 (/Library/Python/2.5/site-packages에 위치)./...)하지만 불행히도 여전히 태그를 변환하지 않고 .hgtags 파일을 만들지 않습니다. –

    1

    내가 과거에 본 한 가지 제안은 svn을 중간 단계로 사용하는 것입니다. git와 hg 모두 우수한 양방향 svn 변환이 있습니다.

    관련 문제