Mac로 Mercurial 창고를 Giit 창고로 변환

4991 단어 GitPythonMercurial

개시하다


이 글은 Git Advent Calendar 2018의 셋째 날의 글이다.
메르큐리얼의 창고를 기트의 창고로 전환해 열심히 전환했다.
BitBucket의 hg 창고를 github의git 창고로 이동
나는 이 글을 참고했다. 아마도 나의 업무 환경이 맥이기 때문일 것이다. 몇 가지 곤혹스러움을 느꼈기 때문에 기사에 쓰는 것을 잊지 않은 틈을 타서.
이 방법은 최소한 제출 로그 (날짜와 저자) 를 유지하여 변환할 수 있다.
다음 설명에서 작업 디렉토리는 ~/입니다.
# ユーザーディレクトリを作業ディレクトリとする(任意)
cd ~/

Mercurial 설치


설치 안 했으면 설치해.
brew install mercurial

fast-export 다운로드


이번 관전 포인트다.이 소프트웨어는 창고를 바꿀 수 있다.
기트에 공개된 것이기 때문에 아래 명령으로 다운로드한다.
git clone git://repo.or.cz/fast-export.git

python 2 사용


fast-export에서 python2 라는 명령을 사용한 것 같습니다.
Mac 기본 Python 2.7이 설치되어 있기 때문에 파이썬 3 시스템이 설치되어 있지 않으면 이래도 괜찮다.여기서 일할 필요 없어.
단, pyenv 등의 장치를 사용하고 2.7 계열과 3 계열의 Python을 사용할 때python2 명령을 유효하게 해야 한다.
다음 명령을 내리면 확인할 수 있습니다.
$ pyenv global
2.7.13
3.6.1
이렇게 2.7.x 후보들 사이에서는 문제없다.
없으면 다음 명령을 사용하여 추가합니다.
pyenv global 2.7.13 3.6.1
자신의 환경에 따라 버전 번호를 적절하게 바꾸세요.

pip 설치


pip는 파이톤의 패키지 관리 도구입니다.pyenv 등을 사용하고 싶은 사람은 이미 설치되어 있을 것 같습니다.
Mac 기본 Python 2.7 을 사용할 때 pip가 설치되지 않았을 수도 있습니다. 설치하십시오.
기본 Python 2를 사용하는 몇 가지 방법이 있습니다.7을 활용하면 이것을 참고할 수 있다.
macOS의 기본 Python에서 pip 사용

pip 패키지 설치


pip로mercurial 포장을 설치합니다.
# Python2.7系を明示的に指定してインストール
pip2 install mercurial

# Python3系を併用していないなら、これでもいいかも
pip install mercurial

Mercurial 로컬 웨어하우스 만들기


변환할 로컬 창고를 준비하세요.
로컬이 아닌 경우 클론으로 만듭니다.
# Mercurialのローカルリポジトリを作成する
hg clone <MercurialリポジトリのURL> hg_repo
다음 설명에서 ~/hg_repo를 Mercurial의 로컬 창고로 사용합니다.

커밋 이름 바꾸기


메르큐리얼의 제출 로그 사용자 이름이 정해진 형태로 바뀌지 않았다면 기트로 잘 변경되지 않았을 것이다.
다음 명령을 사용하여 확인합니다.
# Mercurialのリポジトリに移動
cd ~/hg_repo

# コミットログのユーザー名を一覧で表示
hg log | grep user:
사용자 이름이 hoge <[email protected]> 같은 ユーザー名 <メールアドレス> 형식이면 문제없습니다.없으면 수정해야 돼.
먼저 Mercurial 설정 파일~/.hgrc을 편집합니다.없으면 해.
# Mercurialの設定ファイルを作成する
touch ~/.hgrc
구성 파일에 다음 내용을 추가합니다.
[extensions]
hgext.convert=
이렇게 하면 hg convert 명령을 사용할 수 있다.
이어서 제작~/authors.txt.
# Mercurialの設定ファイルを作成する
touch ~/authors.txt
이 파일에서 사용자 이름의 수정 전과 수정 후를 추가합니다.예를 들면, 바로 이런 느낌이다.
foo=foo <[email protected]>
bar on Mac=bar <[email protected]>
=의 왼쪽은 수정 전, 오른쪽은 수정 후입니다.
마지막으로 다음 명령을 실행합니다.
hg convert --authormap authors.txt hg_repo hg_repo_2
신규~/hg_repo_2.그러면 사용자 이름이 변경됩니다.
다음 설명에서 ~/hg_repo_2를 Mercurial의 로컬 창고로 사용합니다.

창고를 바꾸다


드디어 Giit 창고로 전환합니다.
# 空のGitリポジトリを作る
git init git_repo

# Gitリポジトリに移動
cd ~/git_repo

# MercurialのリポジトリをGitのリポジトリに変換する
~/fast-export/hg-fast-export.sh -r ~/hg_repo_2

# Gitリポジトリをチェックアウトする
git checkout HEAD
전환이 완료되었습니다.수고하셨습니다.

최후


상당히, 고전을 했지만, 드디어 순조롭게 진행되었으니 정말 다행이다.
업무 시 아래 사이트를 참고하였다.감사합니다.
  • BitBucket의 hg 창고를 github의git 창고로 이동
  • pyenv 사용 환경의 npm install에서pytht2 주위에 오류가 발생했을 때
  • 커밋 이름 바꾸기
  • 좋은 웹페이지 즐겨찾기