1

Linuxでrabbit-vcsでSubversionを使用しています:

  • マージの下では、オンラインで自分のブランチを参照するオプションのみが表示されますsvn url
  • オフラインの svn フォルダーをブランチとして指定するオプションはありません。

私はSubversionにかなり慣れていないので、実際に svn で2つのブランチをオフラインでマージすることは可能ですか?

2 つのブランチが既にチェックアウトされています。

  • /home/user/branch1
  • /home/user/trunk
4

1 に答える 1

2

まず、これを読んでください。さらに良いことに、これも読んでください。おそらく、マージを理解することは、SVN を正しく使用する方法を知る上で最も重要な部分です (たとえば、新しいブランチを作成する前に何千回も考えるでしょう :))。

コミットされた 2 つのソースを作業コピーにマージすることに注意してください。つまり、ソースの 1 つを作業コピーとして指定したとしても、マージのためにその URLが使用されます。したがって、これはクライアントがサポートする場合とサポートしない場合がある一種の構文糖衣です。その理由は、マージ操作でソースの共通の祖先を識別し、変更ごとにそれらをマージする必要があるためです。その情報は作業コピーにはありません。

ここで混乱の可能性があるソースに注意してください: 多くの (ほとんどの?) インスタンスでは、作業コピーの引数は、マージされるソースとマージされる作業コピーの両方を指定する場合があります)。

S1 と S2 を W にマージするとします。S1 と W にはファイル F が含まれています。S2 には含まれていません。ここで、少なくとも 2 つの可能性があります。(1) S1 と S2 の共通の祖先 S にファイルが含まれており、S2 で削除された。その後、マージは W から削除する必要があります。(2) S には F が含まれておらず、S1 に追加されました。その場合、F は W にとどまる必要があります。S に関する情報は単にローカルに存在しないため、リポジトリに連絡する必要があります。

オフラインの作業コピーが と で実行svn infoされたブランチ URL を正確に見つけるにはbranch1trunk.

于 2012-05-02T08:24:44.023 に答える