2011-09-22 19 views
5

私はSVNブランチとトランクを持っています。トランクは定期的に変更され、ブランチは変更されません。SVN:Eclipseでブランチをトランクと同期させますか?

いつも、週に1回言うとしましょう。ブランチのローカル作業コピーをトランクの最新の変更で更新したいと思います。

私は理想的には、ブランチの最新バージョン(Eclipse:Team-> Synchronize)と同じようにしたいと思います。更新する前にすべての変更を確認できます。

異なるリポジトリ(たとえば:トランク)でこれも可能ですか? そうでない場合、人々は更新する前にどのように変更を見直しますか?

私はTeam-> Mergeを見ましたが、これは私の作業コピーに直接変更を反映するようですが、変更を最初に確認する必要はありません(プレビュー機能は混乱しています。 Synchronizeが持つ変更/競合の横並びの良いビュー)。

答えて

0

私はブランクとトランクの両方を別々のEclipseプロジェクトがワークスペースにプロジェクトとしてチェックアウトします。次に、いくつかのマージツール(例えば、meld)を使用して変更をマージします。マージ後、Eclipseのブランチをリフレッシュしてsvnリポジトリと同期させることができます。これですべての変更を確認できます。 (それは私がsvn eclipseプラグインを信じていないので、私はそれを行う方法です))

+0

私はEclipseでもsvnが嫌いでしたが、今はSubversiveがかなりいいです。何千ものファイルを持つ大きなプロジェクトであっても、それは使用可能です(高速ではなく、時には数分のアップデートが必要です) – Dylan

6

これを行う正しい方法は、Mergeです。 Subclipseにはこれを簡単に行えるマージクライアントが含まれています。あなたは本当のプレビューを与えるわけではありませんが、Subversionの視点からはうまくいくことは間違いありません。 Merge ResultsビューのUIは、基本的にSynchronizeビューと同じです。これにより、作業コピーで行われたマージと変更されたEclipse比較エディタのすべての変更を簡単に調べることができます。コミットする前にコード内で望まない変更の部分を簡単に取り除くことができます。

Synchronizeビューからこれを実行しようとすると、コードエディタを使用して自分自身でマージを行い、Subversionはマージ対象を認識しません。 Subversionに最初にマージをさせておけば、すべてのメタデータを適切に更新することができます。マージの結果をコミットする前にコードを修正しておきましょう。

+1

マージを最初に行い、その後変更を見直すという非常に奇妙な決定...誰もが作業コピーを破棄する前に、変更を最初にレビューするのではなく、これを好む...他の人が何をしたのかを知りたいときは、それと何か関係が必要な前に...他の人の混乱を取り除かなければならない可能なアップデート/ビッグフィックスが利用可能であるかどうかを確認してください... – Dylan

+2

あなたはどのようにあなたの作業コピーを破壊していると感じますか?一般に、コミットされていない変更がある作業コピーにマージするべきではありません。マージの結果が気に入らなければ、元に戻すオプションがあり、作業コピーを元の状態に戻すことができます。個々の変更は、[元に戻す]オプションを使用して簡単に削除できます。誰かがツールが自分の仕事をして、それが何をしたのかを見直すのではなく、すべての変更をレビューしたいと思うのは非常に奇妙です。 –

+0

たぶん私はそれに慣れる必要があるかもしれません。私はちょうど作業コピーに実際にマージすることが奇妙だと思って、次に他の人が何を変えたかを見てください。私はちょうどすべての今後の変更を見るための簡単な方法を望んで、私がマージする必要があるかどうかを決定します。 – Dylan

0

バックトランクにコミットするとき、あなたの変更を「同期」、私はそれが設計によって本当に直感的ではないことを同意するが、マークは右です:

  • 最初にあなたのローカルブランチが完全に同期していることを確認してくださいリポジトリブランチ(変更なし)
  • チーム - >Merge ...リポジトリトランクとブランチのローカルコピーは
  • あなたは今マージというのローカルバージョンを持っている
  • ローカルで編集このバージョンは、必ずテストが作業しているを作ることができますし、何のコンパイルエラーが
  • 最後にあなたが同期はありませんお近くのマージされたブランチリポジトリのブランチとバージョンおよびほか

を行ってきたすべての変更をコミットし、リポジトリトランク

    に戻ってあなたのブランチをマージしますと同じ方法
  • トランクチームにスイッチ
  • あなたのブランチの全ての変更がリポジトリブランチにコミットしていることを確認してください - >マージ - >スイッチ...
  • は、あなたのブランチチームであなたのトランクをマージします。あなたは今、あなたは今
  • がローカルトランクを同期あなたが作業バージョンを持っていることを確認して、変更内容を編集し、それらを検討することができるマージのローカルバージョンを持っている
  • ...(TAB「再統合」)(マージされたバージョン)とリポジトリtr
  • UNKはローカルにそれらをテストしてみたので、私は、あなたがマージにローカルで行われたすべての変更をコミットすることをお勧めトランク内の表示したいすべての変更

をコミットします。ちょっとした変更をコミットする場合は、リポジトリのバージョンがまだ変更が行なわれていないことを確認してください。

関連する問題