2010-11-30 6 views
1

私はUbuntuサーバー10.04にアップグレードしました。しかし、私の古いプロジェクトの多くは、さまざまなサーバー上の自己ホスト型Subversionリポジトリにまだラップアップされていたため、分散型VCのニーズに使用していたSVKを削除しました。これは当時の私のさまざまなシステム間で適切に機能していました。私はBazaarに移行することを決めました。私はすでに新しいプロジェクトでこれを評価していました。旧バージョンのコミットされていない変更を、以前のバージョンの作業ディレクトリから新しくインポートしたバザールリポジトリにマージするにはどうすればよいですか?

私はのsvn-輸入の使用を許可するのbzr-svnのプラグインをインストールしている - と首尾よく使用して/すべてのプロジェクトは、独自のセットにインポートされたVAR /のbzr /レポ/(リポジトリを設定します自動検出されたトランク2のレイアウト)。 bzrログは、すべてのプロジェクトの正常なインポートを確認します。

残念ながら、いくつかのプロジェクトで作業フォルダにいくつかのコミットされていない変更がありました。これらは中央の/var/bzr/repos/projectnameリポジトリに再作成したいものです。私は、これらを新たにインポートされたリポジトリの上に新しいリビジョンにしたいと思います。

どうすればよいですか?

これらの作業フォルダは、つまりは/ var/www /のプロジェクト名/ htdocsにされている - いくつかは、開発サーバー上にあり、一部は(既にインストールバザーや転覆を持っている)は、Windowsのラップトップ上にある

私が実行している試してみましたbzr initとbzr merge file:// var/bzr/repos/projectname/trunk - これは多数の競合を作成します。代わりに、私は試みました:bzr init; bzr add、bzr mergeを実行します。

それぞれの場合、新しく生成されたファイルをマージから削除して、.movedファイルの名前を変更して改名しようとしましたが、リビジョン番号が1から始まり、-301に逆戻りするという影響があります。別の異なる結果は、ローカルにコミットされた変更をバックアップしてバックアップしようとしたときのログ履歴の完全な消失でした。幸運なことに、毎回オリジナルのSubversionソースからリポジトリをリセットして再インポートすることができました。

長いルートは単に新しいフォルダに分岐/チェックアウトし、新しい変更をdiff/redoするだけですが、変更の記録やkdiffディレクトリマージ操作の実行は避けてください。

リビジョン番号とログを保持しながら、新しい変更を中央の/ var/bzr/repos/projectnameブランチに適用することが望ましいでしょう。

答えて

0

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

+0

私はサーバー上の作業コピーでこれを試しました。これはかなりうまくいくようです。ラップトップではやや難しいですが、メインブランチへのSFTPアクセスが可能ならば可能でしょう。 – Fai

0

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

+0

svn(またはむしろsvk)リポジトリには、サーバのアップグレードによってSVKが削除されたため、コミットを許可する必要なメタデータがありません。しかし、提案をありがとう。 – Fai

+0

その後、SVNワーキングツリーからパッチファイルを作成し、それをbzrブランチに "bzr patch" – Federico

関連する問題