2

ブランチを持つ Subversion 1.6 リポジトリを再編成しようとしています。ファイルをトランクに移動し、そのファイルがブランチに変更されている場合、それらの変更がブランチにマージされると、それらの変更はもう存在しないようです。

以下に説明を試みます。

1. Repo before move
    trunk/a.txt
    trunk/b.txt
    branches/feature/a.txt
    branches/feature/b.txt

2. File branches/feature/b.txt is changed.

3. Repo reorganized
    trunk/a.txt
    trunk/new-location/b.txt
    branches/feature/a.txt
    branches/feature/b.txt

4. Changes from trunk merged to feature
    trunk/a.txt
    trunk/new-location/b.txt
    branches/feature/a.txt
    branches/feature/new-location/b.txt

フォルダーのbranch/featureは、trunkのコピーです。

ステップ 4 が完了すると、feature ブランチからのファイル b.txt へのすべての変更がなくなります。

これはsvn 1.5で修正されたと思いましたか?

これができない場合でも、どうにかしてレポジトリ全体を再編成する必要があります。ブランチがすべてトランクにマージされたときに移動を行うことはオプションではありません. 私は常に少なくとも 1 つのブランチとトランクを持っています。

4

3 に答える 3

1

移動したファイルのマージは既知の問題です。ただし、subversionは、マージターゲットが見つからない場合、このメッセージで警告します。

欠落しているターゲットをスキップしました:'baz.c'

このメッセージが表示された場合は、手動で対処する必要がある場合があります。ファイルが移動され、新しい場所が変更を受け取る必要がある場合は、名前が変更されたエンティティ間でサブツリーのマージを行うことを検討できます。

そのようなマージを自動的に行うバージョン管理システムを私は知りません。 編集: Mercurialのように見えますが、そのようなマージコピーに従います

于 2009-05-05T21:01:12.810 に答える
0

ステップ 3 と 4 の詳細を提供してください。Subversion のマージはコピーと同じではありません。

于 2009-05-05T00:44:49.580 に答える
0

手順 3 で SVN の名前変更方法を使用して、ファイルの場所が将来の変更に関連付けられていることを確認する必要があります。

(私はこれを引き出しています...まあ、次のことについてはわかりません) ファイルを移動/名前変更するときの祖先に問題があります。マージするときは、祖先を無視するオプションが選択されていないことを確認してください。

于 2009-05-05T01:39:09.373 に答える