タスク: Gitへの移行

Issue #848 resolved
k4nagatsuki repo owner created an issue

来るべき時が来たというべきか、Bitbucketは来年6月でMercurialのサポートを終了するそうです。やむをえず、CWPy、cwxeditor、及び周辺リポジトリは全てGitへ移行しなくてはなりません。

ざっと見た感じ、リポジトリを動かさずにそのままGit化するというような事はできないようです。しかしURLを変えたくないので、以下の手順を踏む事にします。

  1. Downloadsの中身を取っておく。
  2. Wikiをcloneして取っておく。
  3. リポジトリの詳細とIssueをエクスポートして取っておく。これはBitbucketの設定画面から行えます。
  4. ローカルリポジトリをMercurialからGitへ変換。
  5. リモートリポジトリを削除。
  6. 同じ名前で新規リモートリポジトリを作成。
  7. Wikiをpush。
  8. 詳細・Issueをインポート。
  9. Downloadsの中身を改めてアップロード。
  10. Gitへ変換したリポジトリを新規リモートリポジトリへpush。

これで移行できるはずです。5.と6.の間が非常に危険ですが、URLの変更はできないため、こうするしかありません。ぶっつけ本番は怖すぎるので、事前にうまくいくかどうかテスト用のリポジトリで実験しておくべきです。

Pull Requestの情報は、遺憾ながら全て失われます。

もしかしたら、後々Bitbucketがもっとよい移行手段を用意してくれるかもしれません。ですので、急いで実施はせず、当面は見合わます。

Gitの使い方自体は、コントリビューターが個々人で学習する事になります。私自身は割と日常的に使っていますので、私に質問しても問題無く答えられると思います。

Comments (8)

  1. k4nagatsuki reporter

    試してみたのですが、どうやらリポジトリ名を変えるとURLも変更されるようです。従って元のリポジトリを削除する必要は無く、手順は以下のようになります。

    Pull Requestの情報が全て失われるのは同じです。

    1. Downloadsの中身を取っておく。
    2. Wikiをcloneして取っておく。
    3. リポジトリの詳細とIssueをエクスポートして取っておく。
    4. ローカルリポジトリをMercurialからGitへ変換。
    5. 新しい名前で新規リモートリポジトリを作成。
    6. 新規リモートリポジトリへWikiをpush。
    7. 新規リモートリポジトリへ詳細・Issueをインポート。
    8. 新規リモートリポジトリへDownloadsの中身を改めてアップロード。
    9. Gitへ変換したリポジトリを新規リモートリポジトリへpush。
    10. 元のリモートリポジトリの名前を変更。
    11. 新規リモートリポジトリの名前を元のリポジトリ名に変更。

  2. k4nagatsuki reporter

    移行についての記事を参考に、手持ちのシナリオのリポジトリをGitへ移行してみました。

    いくつかこの記事に無い躓きポイントがあったのでメモしておきます。

    • 最初にGitHubから入手してきたHg-Gitが動かなかったのでBitbucketにあるものを使用しました。ただしこれも現時点ではMercurial 5.3には対応しておらず、5.2が必要です。
    • .hgignoreは自動変換してくれないので手動で移植する必要があります。
    • .hgtagsはGit変換後は削除してOK。
    • メールアドレス登録無しで行ったcommitはメールアドレスが<none@none>になるのですが、これはBitbucketのユーザと自動的には関連付けられません。リポジトリごとにユーザエイリアスを設定する必要があります(私の場合は@k4nagatsuki → k4nagatsuki <none@none>)。エイリアス設定直後にcommitを見ると、依然として関連付けができていないように見えましたが、しばらくするとよくなっていました。

    Gitへの移行は4系の更新が落ち着いてからすぐに行う予定です。5系の開発開始はそれからになると思います。

  3. k4nagatsuki reporter

    ようやく一段落ついてきた感じがあるので、来週辺りGit移行を実施します。

    その後Python処理系を(各ライブラリが移行可能な状態であれば)最新版に更新して、5系の開発も少しずつ進めるつもりです。

  4. k4nagatsuki reporter

    Git移植を実施しました。

    今後、あちらのリポジトリは更新されません。旧リポジトリに対して通知設定を行っている方は、こちらのリポジトリの方で再設定を行ってください。

  5. tachi gigas

    お疲れ様です。Git移植終了しました。

    参考になるかは分かりませんが、僕の場合はここへのPull Requestするため用と私家改造版用の二つにリポジトリを分ける必要があった(本来ならそうすべきな予感)のと、そも大それた改造も課題もWikiもないため、いっそリポジトリを削除してしまい、フォークし直しました。

    僕はクライアントとしてGit for Windowsを採用し、導入はこの記事を参考にしました。

  6. 暗黒 騎士

    CWXEditorのみですが、自分もよくわからなかったので元のを破棄して再フォークさせていただきました。

    最初使っていたTortoiseHgの後継としてTortoiseGitを入れてみたんですが、使用感が大分違ったので自分はsourcetreeを導入しました。gitのダウンロード(Mercurialもできるみたい?)とbitbucketのアカウント認証を自動的にやってくれて楽だったのでこれからbitbucketでRebootにPullRequestしてみたい人には、bitbucketのアカウントを取得→sourcetreeをインストールという流れが結構おすすめかなと思います。
    https://qiita.com/naoki85/items/c7660d70347e9e70b201

  7. Log in to comment