他の同様の投稿と回答を見ました。しかし、私の状況は次のように制限されています。
ブランチ repo/A には子ブランチ repo/B と repo/C があります。C は新しい foo.c を A にプッシュ/マージしました。次に、B はプル/マージして foo.c を取得し、他の変更をプッシュ/マージしました。プル後に B のリビジョンが 10 から 11 に変更されたとします。これで、ブランチ B のすべてが台無しになったので、B をリビジョン 10 に戻して、プルが発生しなかったと見なすようにします。
そのため、これらの投稿を調べて、次の手順で問題を解決する方法を見つけました。
- svnadmin ダンプ $(repo/B) -r 0:10 | svnadmin load $(newRepo/B)
今、元のレポURLを使用したいので:
2.1) 混乱を防ぐためにバックアップします: svnadmin copy $(repo/B) $(repo/B_backup)
2.2) 新規にコピー: svnadmin copy $(newRepo/B) $(repo/B);
UUID を同じにしたいのですが、svn バージョンが 1.4 であるため、svnadmin setuuid がありません。そう:
3.1) ステップ 1 の前に、元の UUID を記録する svn info $(repo/B)
3.2) ステップ 2 の後、どこかで $(repo/B) のログを開き、元の UUID をそこにコピーします
$(repo/B) にはリビジョン 10 と同じ UUID があります。
私の質問は
これがすべて完了した後、ブランチ A と C も変更されますか?
もう一度台無しにしたくないという理由で、ソリューションに欠けているものはありますか? またはそうするより良い方法はありますか?
ありがとう