2

ファイルをトランクにコミットしました。コミット後、これらのファイルを古いブランチにも適用する必要があることに気付きました。私が取った手順は次のとおりです。

マイコピー(トランク使用:アプリバージョン5)

svn commit -m "blah" : リビジョン 123

古いブランチ (アプリケーション バージョン 3)

svn マージ -r 122:123 svnpath

問題は、「ローカル削除、マージ時の受信編集」ツリーの競合が発生することです。問題のフォルダーは、古いブランチにはまったく存在しませんでした。しかし、作業ブランチで解決すると、トランク内のそのフォルダーのすべてのコンテンツが削除されるのではないかと心配しています。ただし、ローカル コピーがそのフォルダー内のすべてのファイルを受信することも望ましくありません。

私は明らかにここで何かを誤解しています。(コミットする必要があるかどうかさえわかりませんが、次のコミットがそれらのファイルでスタックしたくありません。)コミットされた変更を古いブランチに取得するにはどうすればよいですか? 変更されたファイルのほとんどは同じである必要があります。


以前の目標を明確にするための非常に遅い編集。(これは解決済みですが、もっと明確にする必要があると思います。)

1) トランク (バージョン) 32 に加えられた変更。

2) ブランチ (バージョン) 26 にマージされた変更。

3) 26 のマージ競合を解決し、26 から 28 から 30 から 32 にマージしたいと考えていました。

4) 今後のその他の変更は、26 からトランクまでずっとマージされます。これは、競合によってトランク内のフォルダー ファイルを削除できないことを意味します。

4

2 に答える 2

1

リポジトリに標準の trunk/、branchs/ ルート ディレクトリが設定されていると仮定します。

cd branches/mybranch
svn merge -r 122:123 ../../trunk .
于 2012-08-16T16:21:41.353 に答える
0

ここでの私の解決策は最適ではないかもしれませんが、これが私がしたことです:

svnrevert-R。

次に、すべてのローカルファイルと競合していないフォルダーを再読み込み(svn add)しました(理由はわかりません)。

その後、競合することなくコミットすることができました。ただし、新しいコードを手動で変更して古いファイルを変更する必要がありました。

于 2012-08-16T16:31:51.043 に答える