CVS / PCVS / VSS / ClearCase / StarTeam / MKSからSVNへの履歴の転送

良い一日!



この記事は、1つの小さなタスク-1つのバージョン管理システムから別の、またはSVNへの履歴全体と一緒にリポジトリを転送することに専念しています。 Palarionの無料のSVNユーティリティ用Importerを使用して、コード変更ログを失うことなくCVS / PCVS / VSS / ClearCase / StarTeam / MKSからSVNに移行できます。 私の場合、プロジェクトをBorland StarTeamから転送する必要がありました。



StarTeamにノー、SVNにノーと言われたのはなぜですか? 最初は、ホリバロフを避けるためにこの段落をスキップすることを考えました。 しかし、おそらく、これがなければ、記事は定義の領域から奪われていただろう。 私の場合、StarTeamを放棄することは、StarTeamの導入と管理を行った人の退去によって強制されました。 別のアカウントでサービスを強制的に動作させようとする試みが数日間失敗した場合、バックアップからリポジトリを復元するタスクは大きな課題になるという考えが生まれました。 もちろん、しばらくすると手の曲率半径が大幅に増加する可能性があります。 しかし、私たちはそれを必要としています、私たちは尋ねます、いつ、SVNをインストールしてサポートするための無料でとてつもなく簡単なのでしょうか? さらに、私は以前の仕事の場所でそれを使用した十分な経験があり、2人半の開発者全員が同じ部屋にいます。



1つのハードル-変更の履歴を失うことは残念でした。 最初は、SVNで現在のバージョンを埋め、StarTeamでストーリーを見て、以前は読み取り専用に翻訳していたと考えていました。 しかし、彼らが言うように、これは私たちの方法ではありません。 また、短いGoogle検索により、前述のSVNのPalaion Importerが作成されました。







今すぐポイントに。 CVS / PCVS / VSS / ClearCase / StarTeam / MKS(パスワードとすべてのアクセス権)にリポジトリがあります。 SVNの新しいリポジトリに転送する必要があります。



注1:構成のオプションから判断すると、既存のリポジトリにデータをアップロードする可能性がありますが、確認しませんでした。



行動計画:



0.システム要件の確認。

1.ユーティリティをダウンロードします。

2.一般的なパラメーターを構成します。

3. SVNセクションをセットアップします。

4. VCSソースセクションを設定します。

5.ユーティリティを起動します。



0.システム要件を確認します



すべてのシステム要件のうち、ユーティリティが動作するマシンにインストールおよび設定されたJRE(ユーティリティはJavaで記述されているため)。 このマシンからソースとレシーバーの両方が利用可能でなければなりません。

私の場合、StarTeamサーバーとSVNサーバーの両方が同じマシン上でスピンします。 私にとって選択は明らかでした。



1.ユーティリティをダウンロードします



本文の左側にある「ダウンロード」リンクです。 名前/会社/電子メールを指定するとすぐに、ダウンロードが開始されます。 soapの確認要求はありませんが、アドレスの存在の確認があります。 次に、zipアーカイブをターゲットマシンに解凍します。



2.一般設定をセットアップする



config.propertiesファイルで:



srcprovider = st

これが最も重要なことです-データソース。 これがStarTeamです。



import_dump_into_svn =はい

ダンプファイルのみを作成できます-このため、ここには記載しません。 たとえば、SVNへのインポートの段階でエラーが発生した場合(「特定された問題」を参照)。



existing_svnrepos = yes

clear_svn_parent_dir = yes

理論的には、これらのパラメーターを使用して、既存のリポジトリにアップロードできます。 試したことがありません。 ローカルに新しいリポジトリを作成し、便利なインターフェースを使用してサーバーにインポートしました。



3. SVNセクションを構成する



config.propertiesファイルで:



svnimporter_user_name =ログイン

ドメイン(AD)ログインを使用しました。 しかし、それは私には思えます、あなたはどれでも指定できます。



svnadmin.executable = c:/ Program Files / VisualSVN Server / bin / svnadmin.exe

はい VisualSVNを使用しています。 気に入らない人は、別のサーバーへのパスを処方します。



svnadmin.repository_path = D:/ SvnRepositories / Repository1

逆説的に、これはSVNリポジトリの場所です。



svnadmin.parent_dir =。

SVNリポジトリ内のフォルダー。 この場合、ルート。



svnadmin.tempdir = c:/ temp / svnlocal

一時的なゴミ。



svnclient.executable = c:/ Program Files / VisualSVN Server / bin / svn.exe

あなたは信じないでしょう...



svnadmin.verbose_exec = yes

プロセスに関する詳細情報がログに書き込まれます。



config.autopropsファイルもあります。 個々のファイル拡張子のMIMEタイプとプロパティをリストします。 私は耳に十分な「工場」設定を持っていました。 それが十分ではない人に-例えば、 ここでのぞき見することができます



4. VCSソースセクションを設定する



同じconfig.properties内のすべてのサポートされているVCSには、個別のセクションがあります。 コメントは理由を理解するのに役立ちます。



StarTeamの場合、接続文字列を指定します(ビュー内で個々のフォルダーを指定することもできます)。

st.url =ログイン:PWD @ SRV-NAME:49201 /プロジェクト/ビュー

st.tempdir = c:/ temp / starteamtemp



注2:パラメータst.includes.regex / st.excludes.regexを使用しようとしましたが、その形式の秘密は理解していません(RegExが知っていることですが、URLのどの部分に適用されるか、一連の実験では明確になりませんでした)。 私は彼らのフォーラムに書き込もうとしましたが、返事はありませんでした。



5.ユーティリティの起動



さて、ここで-あなたは汗をかいたハンドルで赤いボタンを押すことができます。 これを行うには、svnimporter.jarを実行し(run.batファイルはWindowsユーザー用にすでに準備されており、JVMに渡されます)、2つのパラメーターを渡します。

%1はチームです。 私たちの場合、それはいっぱいです。 可能なオプション:list、incr。

%2-上記で修正された構成:config.properties。



つまり このようなもの:

SET JAVA_OPTS=-Xmx192m java %JAVA_OPTS% -jar svnimporter.jar full config.properties
      
      







備考3.私が知っているコマンドのうち、エクスポート/インポート設定の正確性をチェックするリストがまだあります。

備考4.増分ダンプもありますが、このトピックはこの記事では説明していませんが、2つのVCSを定期的に(スケジュールに従って)同期したい場合には役立ちます。



成功基準


ユーティリティが終了したら、history.logログを調べて、「正常に終了しました」という秘跡の行を探します。 そうでない場合は、svnimporter.logでエラーを探して修正します。



特定された問題:



1.私のユーティリティは、Borlando-Startimクラスが見つからないと誓った。 starteam80.jarライブラリーをlibフォルダーに投入しました。これは、StarTeam Server 2005のインストール場所から取得したものです。おそらく、Javaの環境変数をセットアップする必要があっただけでしょう。



2. 3回目の実行で、SVNへのインポート時に問題が発生しました。 ユーティリティーは、無効なUTF-8文字で誓約しました。 このユーティリティが曲率なのか、ストレージに壊れたバージョンがあったのかはわかりません。 一般的に、ソリューションオプション:






All Articles