6

トランクを機能ブランチにマージすると、トランクで発生した削除が作業コピーに複製されません。

マージ時にトランクの削除がブランチの同じファイルを削除しないのはなぜですか? Subversion 1.5 のクライアントとサーバーを使用しています。

ブランチを再統合するときに、ブランチ内のファイルへの変更はスキップされると思いますか?

同僚が「準備ができていない」という理由だけでトランクからファイルを削除したため、トランクでファイルを引き換える最良の方法は何ですか。

状況:

cd project; svn copy trunk branches/f1; svn ci -m "branching out" branches f1;
echo "modifying a file on branch." >> branches/f1/file1; svn ci branches/f1 -m "Branch modified"; 
echo "Above modify is not even needed to state the case";
svn rm trunk/file1; svn ci trunk -m "creating (conflicting) delete on trunk";
cd branches/f1; svn merge svn+ssh://repos/trunk .
[ -f file1 ] && echo "file f1 does exist while it should have been deleted by merge.";

そのため、ファイルがアクティブに削除されたトランクにマージしているにもかかわらず、ファイルはまだ作業コピーに存在します。非常に予想外です。私の場合、ファイルに変更を加えていません。これが、svnがファイルを保存する理由を考えることができる唯一の理由です。

4

2 に答える 2

1

私の理解の範囲内では、あなたが行ったことは file1 でローカル競合を作成することです。あなたのブランチでは、それが変更されました。あなたのトランクでは、それは削除されました。マージすると、競合します。したがって、ファイルは引き続き存在します。

私は2つのテストを提案します:

  1. 上記のコードを実行した後、 の結果を含めますsvn status
  2. 上記と同じコードを試してみてください。ただし、そのブランチをまったく変更することはありません。(svn statusここでも役に立ちます。)
于 2008-10-28T09:22:13.200 に答える
0

トランク上で削除されたファイルは、マージ後もバージョン管理されていますか? バージョン管理されていない可能性がありますが、まだ存在しています。これは予期された動作です。svn statuswillの出力を見ると、ファイルがまだバージョン管理されているかどうかがわかります。

状況を詳しく説明しているこのバグ レポートをご覧になることをお勧めします: http://subversion.tigris.org/issues/show_bug.cgi?id=2282

于 2010-12-02T17:29:21.200 に答える