12

私の会社には、数年前に SourceSafe から移行されたサラウンド SCM に大規模なコードベースがあります。私たちは自分たちのニーズにより適したものに移行しようとしていますが、Surround から歴史を引き出すことは困難であることがわかっています.

gitインポーターをグーグルで検索すると、カスタムインポーターに関する優れたチュートリアルが見つかりました。svn、perforce、および他の多くのサポートもあるようですが、Surround はありません。

スナップショットを取り、新しい git リポジトリを開始する方がよいでしょうか? それとも、15 年以上のコード履歴を取得するためにスクリプトを作成する価値があるでしょうか?

4

3 に答える 3

6

この正確なシナリオに自分自身を見つけたので、そのようなカスタムインポーターを自分で作成しました: export-surround-to-git

この方法では、完全な履歴、タイムスタンプ、作成者、コメント、ブランチ、スナップショットなどを保存できます。

このスクリプトは限られた数のシナリオでテストされており、これまでのところ成功していることが証明されています。まだ進行中の作業ですが、これはあなたが探しているものかもしれません。これはオープンソースですので、自由に自分でスクリプトを改善してください!

于 2014-09-20T17:38:17.560 に答える
4

サラウンド SCM には SDK があります。これを使用して、リポジトリを CVS から Surround に移動しました。数年後、あるチームが SVN への移行を検討していて、リポジトリを移行できるかどうか尋ねてきました。私は、Surround リポジトリをウォークし、中間インメモリ データベースを作成してから処理するという解決策を思いつきました。日付が正しいことを確認するために、コンピューターの時計をリセットしました。ソリューションを完全に実装する前に、チームが履歴を確認し、プロジェクトの組織全体を再考する必要がある場合に備えて、そのチームにフローティング ライセンスを保持することにしました。(参考までに、2 年経った今でもそのチームはサラウンドを使用しています。)

于 2012-11-14T18:57:11.867 に答える
4

この種のシナリオでは、スクリプトを作成できますが、すべての履歴を取得することはできません。

インポートのみをお勧めします:

  • メジャーレーベル(1年以上前のもの、またはあなたが快適だと感じる期間は、古いものなので完全に調べる必要はありません)
  • 過去数年間のすべてのラベル (メジャーおよびマイナー)。

ただし、Git への移行には、一元化された Surround リポジトリ内でモジュールまたはアプリケーションを識別するための作業も必要です。
これらすべてのデータを1 つのGit リポジトリにインポートしようとするのは間違いです。ただし、それが (Linux カーネルのように) パーツごとに個別に開発できない 1 つの巨大なシステムでない限りです。

見る:

于 2009-08-20T04:19:27.303 に答える