1

私は転覆から水銀の断片に移行してきましたが、これにより少し混乱が生じました。最初に古いSVNサーバー(1.4より前)を持っていたので、ここで何が起こったのですか。

  1. HgSubversion はトランクから完全な履歴を取得したくなかったので、浅い変換を行いました。
  2. 私の同僚は SVN への最後のコミットを行い、私はそれらを Hg にプルしました。
  3. Hgに移動し、プッシュを開始しました
  4. 安全のために、私の同僚の 1 人が SVN にさらにコミットしました。
  5. SVNサーバーのアップグレードを管理し、新しいSVNへの完全なレポを取得しました。
  6. HgSubversion は完全な履歴を正常に取得しました - いくつかの余分な/重複したコミットを含みます。

ここで、浅いmercurialリポジトリのコミットを完全な履歴に「移植」したいと思います。リポジトリはコンテンツでは関連していますが、mercurialハッシュでは関連がありません。変更を移行するための最良の方法は何ですか? 最終的には、誰もができるようになるはずです:

  1. 完全な履歴で Hg リポジトリを切り替えて作業を続けるには
  2. サービス ユーザーとして、適切な squash/rebased 変更セットの Hg リポジトリから SVN への自動プッシュを行います。

次のシナリオの具体例が欲しいです。

  • ステップ 2 の最後の水銀ハッシュ - A
  • ステップ 3 をプッシュした後の現在の水銀ハッシュ - B
  • アップグレードされた SVN からプルした後の最後のコミットのハッシュ - C
  • 完全な SVN 履歴プル後のステップ 2 コミットのハッシュ - D

私はアスキー アートがあまり得意ではないので、ボーナス ポイントとして 1 つ追加してください。

4

1 に答える 1

2

先週、CVS->Mercurialの移行を行いました。あなたの場合のように、何人かの人々はしばらくの間CVSを使い続けました。

CVSサーバーが最終的にシャットダウンされたときに2つのリポジトリーを同期するために、私は次のことを行いました。

  1. cvs2hgを介してCVSをMercurialに変換します
  2. hgexportを使用して新しいリビジョンをエクスポートします
  3. hgpatchでパッチファイルをインポートする

改訂は十数件しかなかったので、これは大したことではありませんでした...さらに多くの改訂がある場合は、移植拡張機能を見てみてください。

お役に立てれば。

于 2011-02-25T10:21:46.593 に答える