1

コードベースをリファクタリングする必要があります。問題は、これは 1 人の人間が行うことであり、この作業が行われている間、開発チームの他のメンバーが何もしないでいるのを避けることが望ましいということです。そのため、次のシナリオを試して、並行して作業できるかどうかを確認しました。

  1. 最初に開発者 A のワークスペースのディレクトリにファイル test.txt を作成しました。
  2. このファイルをプロモートしました。
  3. 開発者 B のワークスペースを更新し、ファイル test.txt を取得
  4. A のワークスペースで、ファイル test.txt を 2 番目のディレクトリに移動しました。
  5. この動きを促進しました。
  6. B のワークスペースでは、ファイル test.txt が最初にディレクトリに存在する間に編集されます (更新は行われないため、リファクタリングが行われている間に作業が行われることがエミュレートされます)。
  7. 昇格しようとしたところ、ファイル test.txt が変更されたというメッセージが表示されました (正しい、ファイルは移動されました)。
  8. マージしようとしましたが、ディレクトリ 2 番目 (ファイルが移動された場所) にファイルがないため、AccuRev はマージできないというエラー メッセージが表示されました。
  9. B のワークスペースを更新しようとしましたが、最初にマージする必要がある変更されたファイルがあるため、それは許可されません。

現在、キャッチ 22 の状況に陥っています。2 番目のディレクトリに偽のファイルを配置しようとしましたが、このファイルはワークスペースに属していないため、認識されません。

誰かがこのようなことを試して、それを機能させましたか? もちろん、ファイルをコピーすることは可能ですが、より良い方法があれば教えていただければ幸いです。または、これがツールの既知のバグまたは制限である場合。AccuRev サポートにも連絡しますが、コミュニティから役立つヒントを得ることができるかもしれないと思いました。

現在、AccuRev クライアント 5.5.0 を使用しています。

この操作をサポートするツールを作成する方法についての提案に感謝します。

4

3 に答える 3

0

手順 6 と 7 を参照してください: AccuRev 5.5 では、ファイルが編集されて (変更された) ステータスになった後、プロモートする前に最初に維持する必要があります。

ステップ 8 で、ファイルの [バージョンの参照] ビューからマージを試すことができます。こうすることで、移動したノードを含め、マージする任意のノードを選択できます。

ステップ 9. 更新するファイルの 1 つが (変更されている) 場合、AccuRev の更新は正常に実行されません。これは仕様によるものです。ファイルを保持して (保持)(メンバー) ステータスにしてから、更新を実行できます。

デビッド・ハウランド

于 2013-12-02T14:28:31.540 に答える
0

AccuRev 5.5 を使用して、手順 9 に対する David の発言を実験的に検証できました。

ユーザー A のワークスペースでファイルが移動され、移動がプロモートされ、ユーザー B のワークスペースでファイルが変更され、ユーザー B が自分の変更をプロモートしようとしているとします。

ファイルが保持されるまで、ユーザー B はマージも更新もできません。ただし、変更されたファイルを保持した後、更新は可能です。ファイルは最初にオーバーラップとしてマークされ、その後新しい場所でマージが成功します。基本的に、これにより、ファイルのコピーを作成し、元に戻し、更新後に新しい場所に復元する必要がなくなります。これは、AccuRev が移動先を簡単に明らかにできないため、非常に面倒です。

ユーザー A が移動を促進する前にユーザー B が変更を促進すると、すべてがスムーズに進みます。つまり、更新時に移動したファイルはオーバーラップとして表示されますが、新しい場所で移動したファイルに簡単にマージされます。

2 人のユーザーが異なるストリームに接続されたワークスペースを持っていて、共通の親ストリームでオーバーラップが発生した場合も、同様の結果が得られます。ファイルが受け入れられていない場合にのみ、エラーが発生する可能性があります (つまり、移動が変更前にプロモートされた場合のみ)。次に、単純なキープにより、通常どおり続行できます (更新、マージ、プロモート)。

于 2014-05-15T08:26:04.263 に答える