Ubuntu サーバー 10.04 にアップグレードしましたが、分散型 VC のニーズに使用していた SVK が削除されました。これは、古いプロジェクトの多くが、さまざまなサーバー上の自己ホスト型のサブバージョン リポジトリにまだラップされていたためです。これは、私のさまざまなシステム間で当分の間適切に機能していました。新しいプロジェクトですでに評価していた Bazaar に移行することにしました。
svn-importを使用できるようにbzr-svnプラグインをインストールし、/var/bzr/repos/ にリポジトリを正常にセットアップしました。ここで、すべてのプロジェクトが独自のセットにインポートされました (自動検出された trunk2 レイアウトを使用)。bzr ログは、すべてのプロジェクトが正常にインポートされたことを確認します。
残念ながら、私のプロジェクトのいくつかには、作業フォルダーにコミットされていない変更がいくつかあります。これらは、中央の/var/bzr/repos/projectnameリポジトリーに再マージしたいと考えています。これらを新しくインポートしたリポジトリの上に新しいリビジョンにしたいと思います。
これについてどうすればよいですか?
これらの作業フォルダーは /var/www/projectname/htdocs です。一部は開発サーバー上にあり、一部は Windows ラップトップ (既に bazaar と subversion がインストールされています) にあります。
bzr init と bzr merge file://var/bzr/repos/projectname/trunk を実行してみました - これにより多数の競合が発生します。別の方法として、次のことを試しました: bzr init; bzr add と bzr merge 。
いずれの場合も、新しく生成されたファイルをマージから消去し、.moved ファイルの名前を元に戻してコミットしようとしました。これにより、リビジョン番号が 1 から始まり、-301 まで逆方向に実行されるという効果があります。もう 1 つの別の結果は、ローカルにコミットされた変更を "bzr push" しようとしたときに、ログ履歴が完全に失われたことでした。幸いなことに、毎回元のサブバージョン ソースからリポジトリをリセットして再インポートすることができました。
長い道のりは、単純に新しいフォルダーに分岐/チェックアウトし、新しい変更を比較/やり直すことですが、変更を再コーディングしたり、kdiff ディレクトリ マージ操作を実行したりすることは避けたいと思います。
望ましい結果は、リビジョン番号とログを保持しながら、中央の /var/bzr/repos/projectname ブランチに新しい変更を適用することです。