2009-05-15 14 views
10

私は少し前からSVNで遊んでいましたし、そのパワーとユーザーエクスペリエンスが大好きで、私たちはバグ追跡システムに結びつけて皆の生活を簡素化することができます。だから、私たちはVSN 2005のセットアップをSVNに移行することに決めた時が来て、今私は邪魔にならないようになっています。誰もVSS 2005をSVNに正常に移行しましたか?

VSS 2005からSVNへの移行を完了できると主張する多くのツールがあるようですが、どちらが最善のものか、最も完全なものを私に与えるかわかりません遷移。 VSSからチェックアウトしてSVNにチェックインするのではなく、完全な履歴を移行する必要があります。

パワフルかつ高度に設定可能なPolarion SVN Importerが見つかりましたが、うまく動作しません.VS内の$ /からファイルリストを引き出すことができないという不満があります。私は同じコマンドを実行すると、手動でトリップしているので、すべてが正常に実行されているように見えるので、わかりません。

誰もがVSS 2005からソースをVSS 2005に移行することに成功しましたか?その場合、どのツールを使用しましたか?どのような警告や落とし穴も、有用である/驚くべきこと、あるいは失望した、あるいはただ単に虚偽のものであったものだけでなく、知っておくと最も有用なはずです。

+1

私はVSSリポジトリ全体を捨てて、SVNの最新バージョンを大成功としてチェックしたいと思っています:) –

+0

$ /のリストファイルで早く失敗するので、おそらく読み取り専用ではないアカウントを試してみるか、別の既知のアカウント。例外は、アカウントまたは権限のエラーのように見えます。または、おそらく単一のユーザーアカウントが問題を引き起こしています。 – Ryan

+0

笑@Mehrdad - 私は同意するつもりだ。しかし、歴史をもたらす必要性は私のものではありませんでした。私はちょうどすぐに郷愁を感じるために既存のリポジトリをいくつかの場所に保管していきます。たぶん、ある日、私たちはそれを開いて、 "ああ、どれくらいかわいかったんだ"と言うことができるかもしれません... – BenAlabaster

答えて

6

履歴を並べ替えてVSSリポジトリからチェンジセットを再生成するために、CodeplexのVssMigrate用の最新のトランク(コンソールアプリケーション)リビジョンを試してください。それはまた、彼らがチェックインされた時間に基づいて正しく改訂を注文します。

HTTP vssmigrate.codeplex.com/SourceControl/changeset/view/16890

私はこのことができます願っています。 $/importについていくつか微調整が必​​要な場合があります。

P.S.この履歴は、アノテーションがインポートに基づいて正しいかどうかを発見する必要がなく、誰が1つのステップで責任を負うかを知るのに役立ちます。より古いコードでバグを発見するときにそれを持っているよりもずっと良いです。

P.P.S. VssMigrateの新しいバージョンを使用して、リビジョンをSubversionリポジトリに再インポートしてから、の後にの前のリビジョンの最後のインポートリビジョンの後にマージすることもできます。唯一の欠点は、リビジョン数が大幅に減少するため、誰もがリポジトリから新しくチェックアウトする必要があることです。基本的には、新しい移行を実行します。 svnadminは以前に移行されたリポジトリをrev migrated + 1から増分としてダンプし、svnadminは新しく移行したリポジトリにロードします。

+0

VssMigrate jim0301のアップデートに関する素晴らしい仕事。あなたがそれらをコミットする前日、私は同じ機能を追加しました。私が更新を提供するために行ったとき、私はあなたがそれらをコミットしたのを見た。そして、あなたは私よりもはるかに優れた仕事をしました。あなたの更新をありがとう。私は過去1週間、すべてのVSSリポジトリをSVNに移行しており、問題はありませんでした。 VSSをSVNに移行したい人は、コードプレースのソースから最新のコミットをチェックしてください。 (実際に私が持っていた問題はlog4netを再ダウンロードしてライブラリを再インストールしなければならないという理由だけでした) – devSolo

+0

VSSMigrateがVSS 6.0d(VSS 2005ではなく)と互換性があるかどうかは誰にも知られていますか? - Lee –

3

最後に私が試したのは数年前のことでした。完全な履歴を取得するには、VSSファイル形式が文書化されていないため、サードパーティ変換プログラムは各ファイルの各バージョンを取得するためにVSSのAPIを使用する必要がありました。私は週末にその変換を実行し、どれだけ達成したのか(数パーセント)を見て、完了するまで数週間のカレンダー時間がかかると計算しました(私たちは長年の歴史を持っていました)。

したがって、最新のコードのスナップショットのみを新しいバージョン管理システムに移行し、履歴用にVSSデータベースのアーカイブを保管することにしました。

+0

あなたのご意見ありがとうございます。私たちはおそらく数年の歴史を持っていますが、何千ものプロジェクトはありませんありがたいことに、ほんの一握りですので、私は物事がその時から前進したことを期待しています。 – BenAlabaster

2

私は正常に数ヶ月前にSVNにVSS 2005を移行しました。私は "VssMigrate.Tim2"ツールを使用しました。これはCodePlex上に明らかに今度はvssmigrateとなっています。それは重大な問題なしでうまくいった。リビジョンやタイムスタンプのようなものは私が期待したように注文されていないようでしたが、大きな問題ではありませんでした。

編集:vssmigrateを使用すると、特定のVSSパス(たとえば$/GroupA/ProjectB)を移行することができ、個々の移行の時間が短縮され、プロセス全体が脆弱になります。 VSSには約6ヶ月のデータしかありませんでしたが、プロセスが長すぎるとは思われませんでした。週末には移行とApache + SVNの設定を完了することができました。 VSSリポジトリのサイズに応じて、大規模な単一リポジトリではなく、複数のSVNリポジトリを作成することができます。

Apache + SVNを構成するのは面倒ではありませんでしたが(試行錯誤)、私たちがVSSから離れたことを非常にうれしく思います。私はGitまたはMercurialを検討していましたが、その時点で信頼できるTortoiseXxxツールまたはVS SCCプラグインはありませんでした。今度はGoogle codeがMercurialをサポートしており、TortoiseHgがうまく見えますが、すぐにMercurialを試してみたいと思います。

+0

あなたは期待どおりにはなかったことについて詳しく説明できますか?それは良い洞察になるだろう... – BenAlabaster

+0

VSSからSVNで作成されたリビジョン番号は、古いものから最新のものに変わっていないようです。私は、新しいSVNリビジョン番号がVSSバージョンから時間的に直線的かつ逐次的に続くことを期待していましたが、svnログを振り返るとパターンに従わないように見えました。 TortoiseSVNのdatetimeでソートするのは簡単だったので、それは大したことではありませんでした。私もvss2svnを見たが、代わりにvssmigrateを決めた。 – Ryan

4

約1年前にPolarionとvss2svnの両方を試しました。

私たちは年の多くのコードをVSSで持っていました。すべての設定とテストの結果、私が結果に完全に満足していなかったことが分かりました。プロセスは長く壊れやすく、最終的には最新のコードをきれいにインポートするだけです。

私が古い歴史を探しに行った昨年は数回ありましたが、それほど多くはありません。新しいSVNリポジトリが非常に高速になるということもまた新鮮なものです。

+0

合意 - 私たちは、このアプローチが「最も安全」であることを発見しました。つまり、何が起こるかなどを管理しています。また、SVNの内部にコードを格納している構造を変更して、CIの機能を使用するようにしました。これは自動化されたツールを使用すると簡単ではないと思いますか? –

関連する問題