1

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 ブランチに新しい変更を適用することです。

4

2 に答える 2

0

私が正しく理解していれば、.bzr ディレクトリを、他の変更の基にしたいブランチ (メインライン/メイン) から、他の変更を含む workingdir にコピーします。次に、そこで bzr commit を実行して、メインライン/メイン ブランチにプッシュします。変更がコミットされていない作業ツリーごとに繰り返します。

于 2010-11-30T16:32:06.580 に答える
0

bzr リポジトリでコミットしていない場合は、svn 作業フォルダーでコミットし (したがって、これらの変更を SVN リポジトリに配置します)、bazaar で svn-import 操作を繰り返すことができます。不足しているリビジョンのみを追加します。

于 2010-12-02T12:06:17.597 に答える