2

先ほどトランクから作成したブランチがあります。ブランチを作成したので、トランクには触れませんでした。さて、ブランチからトランクに戻りたいと思います。マージすることはあまりないので、これは非常に単純なケースです。トランクには何も変わりませんでした。ブランチはトランクを完全に置き換えることができます。

私が見ているように、私には2つの選択肢があります。

  1. トランクを削除し(名前を別の名前に変更し、後で削除します)、ブランチの名前をトランクに変更します。
  2. ブランチをトランクにマージします(作業コピーをトランクに移動し、ブランチからマージコマンドを使用します)。

どのオプションが好ましいかわかりません。リビジョンコンテキストを維持することが重要です(リビジョングラフを壊さないでください)。

何かご意見は?

4

3 に答える 3

4

本当にマージオプションを使用する必要があります。すべての変更が1つのコミット内にあるため、リビジョン情報を失うという議論は無視できます。これは、subversionsのmerge-trackingがこの情報を保持するためです。1.5より前のインストールがまだある場合は、コミットメッセージでリビジョン範囲とブランチパスをメモできます。

トランクで何も変更しなかったので、あなたが言うように、マージは簡単です。

svn merge branchname <Workingcopy-Path>

(もちろん、作業コピーはトランクを指している必要があります)

あなたのコメントへの回答

svn 1.4にはマージ追跡がないため、ロールバックしないでください

ブランチの名前をトランクに変更しない理由:

これはあなたがすべき方法ではありませんあなたの簡単なセットアップではこれは機能します、しかしあなたのトランクは削除されそしてすべてのファイルが再び追加されます、しかしあなたの行動ですべての ファイルが追加されたのであなたは変更されたファイルを簡単に追跡することはできません。

マージすると、ブランチで変更したファイルのみが変更済みとして表示されます。

また、古いトランクからのすべての作業コピーは無効になります(単独で作業するため、これは重要ではない場合があります)。そのため、それらを再度チェックアウトする必要があります。

于 2009-09-03T15:53:02.513 に答える
0

あなたの場合、私は最初のオプションを好むでしょう。ブランチで行ったすべての変更の逆は、トランクへの1つのリビジョンとして適用されます。したがって、これらの変更のリビジョン情報を失います。ブランチを古いトランクディレクトリの場所に移動しても、リビジョン情報はそのまま残ります。

于 2009-09-03T13:50:06.143 に答える
0

最初のオプションを実行するために「svnmove」を使用するのが最も簡単な方法だと思います(これが最善かどうかはわかりません)。

svnでのコピーと移動は、ファイル操作のように機能するはずです。また、これらの変更はバージョン管理されています。

編集:私の答えは、VonCによって言及された前のトピックに関する答えの1つとほとんど同じだったので、この答えを見てください。

于 2009-09-03T13:59:14.543 に答える