ラベル mercurial の投稿を表示しています。 すべての投稿を表示
ラベル mercurial の投稿を表示しています。 すべての投稿を表示

2017/10/30

Mercurial Repository を Git Repository に変換する

Findy という転職サイトが GitHub の public repository からスキル偏差値なるものを算出してくれます。
一度登録してみると、スキル偏差値はプレミアム本会員になるギリギリの60でした。
実際どのくらいなのだろう60。定量的な値になってると良いのだけれど。

さて、 GitHub には大学とは関係ない個人のプロダクトとかを載せていました。
大学での課題やプロダクトは大学の Mercurial Repository に残しています。
ですが、この際 GitHub にも載せることにしました。
単にスキル偏差値を上げたいだけとも言う。
単に bitbucket に上げても良いのだけれどそれだと Findy に拾って貰えないので。


環境構築

Mercurial から Git への変換は fast-export を使います。
  • $ git clone https://github.com/frej/fast-export
こいつは python を内部で使ってるのでその調整も必要です。
  • $ easy_install mercurial
とかかな。
私は python2 を brew で明示的に入れてるので
  • $ vim fast-export/hg-fast-export.sh
    • python -> python2
  • $ pip2 install mercurial
とか。実行時にエラーが出なければOKだと思います。


自分だけが Author の Mercurial Repository の変換

fast-export のセットアップが終わったら、変換します。
  • $ mkdir git_repo
  • $ cd git_repo
  • $ git init
  • $ ../fast-export/hg-fast-export.sh -r /path/to/hg_repo
これで Mercurial の Repository を元に git に commit しまくってくれます。
きちんと時刻とかも残るので便利。


Author Information が気に入らない場合

私は大学時代の時は大学のメールアドレスで commit していたので、GitHub にはアイコンが無い。
これはちょっ悲しいので Author の情報を変更する。
具体的には username と email ですね。変更するには
とかすると良い。長いけれど1コマンドです。
これは他人の commit も変更できちゃうので完全に悪用厳禁ですね。


他の人も commit している repository の変換

最初にやることは変わらずに変換。
  • $ ../fast-export/hg-fast-export.sh -r /path/to/hg_repo
んで、 Author を変更する時に発行するコマンドを変えます。
if 文で自分の変えたい username+email を指定してあげています。

これで指定したものだけが変更されます。便利。
こっちも長いけれど1コマンドですね。
これで他人の成果をきちんと残したまま、自分の気に入らないメールアドレスを書き換えられます。
やっぱり悪用厳禁なコマンドなので注意。


fast-export で変換した Repository List

どうせなので公開できる成果物のリストを残しておきます。
この成果物が誰かの参考になれば幸いです。


オチ

この後 Findy で GitHub 再連携をしたところ、算出方法が変わったようで51に下がりました。かなしい。


環境

  • OS: macOS 10.12.6
  • fast-export (cc8fefe0083bc38c781341a86a1779dc5941f6e2)
  • python: 2.7.10
    • pip: 9.0.1
    • mercurial: 4.3.3
  • Mercurial: 4.3.3
  • Git: 2.14.3


参考

2012/10/15

ssh:// で指定したリモートリポジトリに MercurialEclipse で push できない時にチェックする点

Eclipse に MercurialEclipse を入れて Mercurial を使っている状態で、リモートのリポジトリに push ができない状況になっていた時のチェック点。

・とりあえずチェックするポイント
「 ssh で warnings 出てない? 」


以下詳細。

・ 環境
  • Mac OS X Mountain Lion
  • Eclipse JUNO
  • Mercurial 2.2
  • MercurialEclipse  2.0.0.201208160020

・問題
MercurialEclipse で commit はできるけど、 ssh:// で指定したリモートリポジトリに push しようとすると

no suitable response from remote hg!
com.aragost.javahg.commands.ExecutionException

と出てきてリモートリポジトリに push できない。

"no suitable response from remote hg!" で調べると
  • ssh://で指定したリモートリポジトリのパスが間違ってる
  • sshした際にhgが使用できない(PATHとかの問題)
などが考えられる問題らしいけれど、ターミナル上では

$ hg clone ssh://server.com/path/to/repository
$ hg push ssh://server.com/path/to/repository

がきちんと行なえるので、どうやらリポジトリのパスやPATHの問題では無いみたい。


・原因
リモートリポジトリが置いてあるサーバへの ssh で warnings が出てた。
ssh で warnings が出てると、MercurialEclipse 側ではエラー扱いになるらしい。

今回の問題だと、証明書関係の warnings が出てたので known_hosts を修正するときちんと push できるようになった。





P.S. 某オペレーティングな方々へ
とりあえずよく分かんないけど、どーにかして、ってなったら
$ rm ~/.ssh/known_hosts
を試してみたください