1

職場のプロジェクトをClearCaseからMercurial+Jiraに変換するスクリプトを書いています。移動したファイルに問題があります。'lsact -long'を使用して、アクティビティでファイルを変更しています。問題は、たとえば、ディレクトリの名前が変更された場合、その変更はその親ディレクトリでのみ明らかになり、次のように「describe」でリストされることです。

ディレクトリ要素「new_name」を追加しました。カタログ化されていないディレクトリ要素"old_name

問題は、ディレクトリが移動したことを明示的に指定していないため、誰かが古いディレクトリを削除して新しいディレクトリを作成した可能性があることです。

ファイルがディレクトリチェンジセットに移動されたかどうかを確認するにはどうすればよいですか?

4

1 に答える 1

1

MercurialまたはGitへの移行については、その情報を気にすることはありませんでした。

ClearCase(UCMベースラインまたはフルラベル)から一貫性のあるリビジョンを選択し、それをリポジトリ(Hgまたはgit)に追加するだけです。
改定後、改定を繰り返します。

HgまたはGitは、名前の変更(ファイルまたはディレクトリ)を自動的に検出します。

つまり、VCSによって記録されたメタデータは、GitやMercurialのように変換されません。
名前の変更に関しては、それらのDVCSはそれぞれのリビジョンを分析し、すべてをインポートした後git diff -M、リポジトリ(たとえば、またはなど)を使用しているときに、要求された場合に名前を推測しますhg log --follow

そうは言っても、要素が移動したことをHgに伝えたい場合(「Mercurialでディレクトリの名前を変更し、すべてのファイル変更を追跡し続ける方法」のように)、そのイベント履歴を確認できます(まだプルーニングされていない場合)。親ディレクトリ、または「new_name」の1つ:

cleartool lshist -long ...

これらのイベントは、名前変更または移動操作を記録している可能性があります。

于 2013-01-15T19:04:30.763 に答える