2013-01-25 17 views
5

bazaar-vcsを使用していましたが、長い間迷惑なバグがあり、bzrの開発が中止されたためgitに移行することに決めました。bazaarをコミットプロパティでgitに移行してバグを修正しました

バザールを使用している間、私たちはバザール(http://doc.bazaar.canonical.com/bzr.dev/en/user-reference/bugs-help.html)の「バグトラッカーメタデータ」機能を広く使用しました。したがって、すべてのバグ修正コミットには、対応するmantis-bug-IdにIDが含まれているため、ソースとmantisの間にリンクがあります。

当社のコミットメッセージはカマキリ-IDが含まれていない、我々は唯一の「メタデータ機能」を使用:

enter image description here

私たちがこれらの情報を失う `tをすることを、私たちにとって非常に重要ですこのバグリンクを何らかの形で移行するためのソリューションが必要です。

私はすでに高速のインポート/高速書き出しコマンドを使用してgitのに私達のバザーリポジトリをインポート/エクスポートすることを試みた:

のbzr高速輸出--no-プレイン--rewrite-タグ名は/ var/www/source_branch/|

fatal: This version of fast-import does not support feature commit-properties. 

しかし、私が代わりに--no-無地輸入作品の --plainオプションを使用しますが、私たちが負けた場合:残念ながら、私は次のエラーを取得する高速インポート

をgitの私たちのバグへのすべての接続。

bzrからgitへの移行には、私たちにとって非常に重要なこれらのバグリンクをすべて失うことなく、いくつかの解決策または回避策がありますか?

[編集]:私は、非常に簡単な高速インポート/高速エクスポートファイル形式を分析しました。ファイルを修正し、(プロパティのバグ...)行を対応するコミットメッセージ行に移動するためのスクリプトを書くことが可能でなければなりません。しかし、すぐに使える解決策があれば、それを聞いて嬉しいです:)

答えて

2

Gitファストインポートはメタデータプロパティをサポートしていないので、これらの情報を既存のツールだけで移行する方法はありません。

これらのバグIDのすべてが私たちのためのオプションではなかったので、私はgitが理解できる形式でストリームを書き換えることができる高速エクスポートストリームリライタを書きましたが、すべてのバグID情報が含まれています。

C#の書き換えは、次の手順を実行することで動作します。

  1. コミットは、プロパティのバグが
  2. は、バグIDを解析し、コミットメッセージを変更するコマンドが含まれている場合解析は、入力ストリームから
  3. チェックをコミット抽出されたバグのIDで
  4. は、その他のサポートされていないのbzr-fastexportのみ( "機能"、 "プロパティ支店ニック"))
コマンド除外します

このリライターの詳細情報+コードはhttp://www.fusonic.net/en/blog/2013/03/26/migrating-from-bazaar-to-git/

+0

バイナリを投稿する機会はありますか?場所のNarry C#環境。 – Kieveli

1

などがありました。Davidのリライタを試しましたが、git importが失敗するという結果が出ました。私はそれがコミットのいくつかのファイルの名前を変更する際の微妙なバグだと思う。

私はそれだけでちょうど私が望んでいた何をすべきか「のbzr高速輸出--plain」を変更する方が簡単かもしれません実現。

私はLP: #1606973で上流(bzrの高速エクスポート)バグを提出し、私のために働いたソリューションを添付。 fastimport/exporter.pyを変更した後、私はただしました:

bzr fast-export --git-branch=master --plain | git fast-import 
関連する問題