Visual SourcesafeリポジトリをMercurialに移動する最良の方法は何ですか(すべての履歴を保持することに興味があります)?
6 に答える
私はその特定の変換を行っていませんが、(IIRC) this scriptを使用して VSS から SVN に移行しました。おそらく、テーラーを調べて、vss2hg を検索することをお勧めします。また、vss2svn + svn2hg などの中間ステップを経ることが理にかなっている場合があることにも注意してください。
ただし、主なアドバイスとしては、変換をスクリプト化して、簡単に再実行できるようにすることです。これにより、VSS から Hg への夜間の変換を実行し、トリガーを引く前にすべてが正しく変換されていることを確認できます。
私は vss2hg.pl スクリプトの作成者であり、これを使用して多くのプロジェクトを VSS から Mercurial に移行しました。一部のコメントが完全に変換されないという小さなバグが 1 つまたは 2 つありますが、それ以外の問題は見られません。完全な履歴を変換し、ユーザーの PC クロックが変更が行われたように見える順序に影響を与える可能性がある VSS の問題を回避します。
スクリプトのバージョンは、こちらから入手できます。
ここからvss2hg.plスクリプトを使用しました。これはPerlスクリプトなので、最初にActivePerlをインストールする必要があります。
うまくいきましたが、日付に問題がありました。スクリプトは3種類の日付形式をサポートしていることがわかりました。デフォルトでは、英国の日付形式(547行目)に設定されています。他の2つの日付形式は、コードでコメント化されています。米国の日付形式を有効にした後、スクリプトはSourceSafeデータベースを問題なく変換しました。
Mercurial wiki には次のページがあり、興味があるかもしれません: https://www.mercurial-scm.org/wiki/SourceSafeConversion。私は Visual ソース セーフを使用したことがないので、個人的な経験はありません。
パトリック・メザールからの件名のメールも見つけましたが、残念ながら彼は VSS コンバーターは難しいと書いています。彼はまた、最初に Subversion に変換し、次に Subversion から Mercurial に変換することについても話しています。これは、VSS -> SVN への変換が行われていることを意味していると思います。あなたはおそらくそれを自分でグーグルすることができます。
クライアントの SourceSafe から Mercurial への変換を行いました。最初に SourceSafe データベースを Subversion リポジトリに変換し、次に hg convert 拡張機能を使用して Subversion から Mercurial に変換しました。詳細については、私のブログ投稿を参照してください。
vss2hgを使ってみたところ、1人のユーザーしかピックアップして変換できないという問題が発生しました。これは、誰が変更したかがわからないため、すべての変更セットなどが正確ではないことを意味します。これは、必要なすべてのユーザーをhgで事前設定していないためですか?