0

dev ブランチでコミットを行う 10 人の開発者がいました。1 週間後、すべてのタスクが完了したら、リリースをトランクにタグ付けしてマージする前に、リベースのためにすべてのコミットをテスト ブランチにマージする必要があります。さまざまなリビジョンをマージしているときに、svn の競合を解決するのに時間がかかります。競合が発生した場合:以前は次のことを行っていました:

  1. 私は常に最新のリビジョンファイルを検討しています.r500は私が必要とする最新のリビジョンであり、filename.java.rev500のように生成された拡張子を削除し、私のような残りのベースファイルとそれが生成する以前のリビジョンファイルを削除します.競合が発生します。これはベストプラクティスであり、推奨されますか?私は常にログで diff を使用し、競合が発生したときにリビジョンを考慮しながら手動で最新バージョンのファイルを確認します。

  2. 競合する更新されたファイルのほとんどをマージしているときに、これらのシンボル<<<<<<< .workingおよび>>>>>>> .merge-right.r500 を取得しています。リリースを実行するときに、ファイルでこれを手動で削除する必要がありますか。これらのシンボルがビルドに影響を与えることもあり、手動で削除すると解決します。

  3. 一度に 15 ~ 20 個のリビジョンをマージすることをお勧めしますか。たとえば、リリース全体で 70 個のファイルで構成されている場合、4 ~ 5 個のリビジョンをマージした方がよいでしょうか。競合を解決して残りのリビジョンを進めます。残りのリビジョンを使用した後も、多くの時間がかかります。マージを行うときはいつでも、常に手動で編集するか、従う必要のある最善の方法と実践を行う必要があります。

4

1 に答える 1

0

多くの競合を回避するには、アクティブな開発ブランチを 1 つだけにするか、リポジトリ サブツリーごとに少なくとも 1 つの開発ブランチ (project1、project2 など) を持つ必要があります。

あなたが書いたことから、テスト/トランクブランチにも多くの変更があることがわかります。そのため、非常に多くの競合が発生します。テスト ブランチとトランク ブランチから dev に変更をマージする必要があります。これにより、競合の量が減少します。

一般に、同じコード ベースで動作する多くの並列アクティブ ブランチを回避するようにしてください。そうしないと、多くの競合を回避できません。

また、開発者に仕事を任せることもできます。彼らがテストブランチで何かを修正した場合、彼らのタスクはそれを開発ブランチにマージすることでもあるはずです。これにより、競合の量が減少します。

于 2011-07-05T12:09:41.767 に答える