web-dev-qa-db-ja.com

Accurevでファイルを「プロモート解除」する最良の方法は?

私の会社はソース管理にAccurevを使用していますが、そのすべての利点のために、達成する方法がわからない単純なアクションが1つあります。

多くの場合、誰かが誤ってファイルをストリーム構造内で押し上げすぎています。たとえば、「開発」ストリームから「リリース」ストリームまでです。このファイルを「非プロモート」する最良の方法は何ですか?つまり、古いバージョンのファイルを「リリース」ストリームに戻し、新しいバージョンのファイルを、それが属する「開発」ストリームに保持するにはどうすればよいですか?

リリースストリーム内のファイルに対して「バックアップに戻す」またはその他の元に戻すアクションを実行するだけで、古いバージョンのファイルが開発に伝播するか、ファイルが完全に消えます。

上記の場合、開発者は、ストリームの基準時間を設定してフープをジャンプするか、コマンドラインツールを使用して古いトランザクションのチェックアウトを実行し、ファイルを元に戻す必要があります。問題の人が技術的でない場合もあるので、これは良い解決策ではありません。

また、ファイルを「高地」のストリームに移動し、元に戻してから、再び低ストリームに相互プロモーションすることも検討しました。これは本当に厄介なようです。

AccurevはGoogleが役に立たないほどあいまいなようです。そこで、StackOverflowの善良な人々に助けを求めます。これを達成するための「Accurevy」の方法を誰かが理解したでしょうか。

27
Luke Rinard
  1. メインストリームブラウザに移動します

  2. 誤ってプロモートしたストリームを右クリックして、[履歴を表示]を選択します

  3. 履歴ブラウザで、元に戻すプロモートを右クリックし、[元に戻す]を選択します

  4. 復帰の結果をどのワークスペースに配置するかを尋ねられます。必要に応じて、誤ってプロモートしたワークスペースを選択できます。

  5. ワークスペースで、ファイルが誤ってプロモートされる前の状態に戻るはずです。これで、それを上のストリームに戻すことができます。ストリームには、誤ってプロモートが削除されたバージョンのファイルが含まれるようになります。

  6. ワークスペースに問題のファイルが含まれなくなったことに注意できますが、誤ってプロモートしたファイルをワークスペースに戻したいと思いませんか?その場合は、ストリームの履歴ブラウザに戻り、作成したばかりのプロモート(編集を元に戻したプロモート)を右クリックして、[元に戻す]を選択します。次に、宛先と同じワークスペースを選択できます。

  7. ファイルはおそらくワークスペースのデフォルトグループに表示され、競合するため、ロットを選択してマージを実行するだけです。ここで簡単なマージを受け入れたいと思うでしょう。

ファイルをマージすると、保留中のフィルターに表示されます。これで、誤ってプロモートする前と同じファイルが保留になり、上記のストリームのファイルには、プロモートする前と同じ内容が含まれるはずです。

そのように単純です(皮肉な意図)。

スティーブ

29
Steven Craft

Accurevの監査に適した、追加のみの性質は、実際には、変更を元に戻すことは、必要なバージョンを再適用することを意味します。直感的には、「1ステップ」後方に移動したいとします。しかし、追加のみのシステムでは、これは実際には、古いバージョンを先に進めて再適用することを意味します。したがって、元に戻すことは、当然、「1ステップ戻る」ではなく「2ステップ進む」プロセスです。

ほとんどの場合、復帰はそれほど頻繁には発生しないため、globalの値 'append only'は復帰レシピ(IMO)を上回ります。

ワンストップショップの一貫したソリューションとして、(あなたが言及したように)最も正確なアプローチはプロモートトランザクションを元に戻すことです。ストリーム履歴を表示し、不要なプロモートを見つけます。RClick> Revert。子ワークスペースが必要になります。なぜですか?元に戻すには、マージを解除する必要がある場合があるためです。インタースティシャルプロモートを元に戻すことを考えてください...それは、サンドイッチからレタスを取り出し、上部と下部のバンズを一緒にマージする必要があるようなものです。 txnベースのシステムでのみ、その復帰にはトマト、マスタード、セロリソルトが含まれ、単一の「元に戻す」ことができます。したがって、マージの変更が存在する場合は、それを保存する必要があります。いずれにせよ、最新のプロモートを元に戻しただけの場合でも、変更をワークスペースに戻し、[不定期]マージを実行して、すべてをプロモートします。

短編小説。 CMシステムで元に戻すことは、手術を行うことに少し似ているため、関係者が関与することをお勧めします。

一歩後退します。私は、accurevストリームを利用して、コードを頻繁に検証し、検証された場合にのみチェーンを昇格させる傾向があります。したがって、昇進するほど、元に戻る可能性は低くなります。

12
user129236

AccuRevバージョン5.2では、ワークスペースを使用せずに、トランザクションを元に戻したり、ストリームで直接発行したりする機能が導入されています。これは「リリース」ストリームの変更を元に戻すのに役立ちますが、質問の2番目の部分を解決しません(新しいバージョンを「開発」ストリームに戻すためです。完全な「昇格/降格」機能は、将来のリリース。

バージョン5.2の詳細については、-のリリースノートにアクセスしてください。

http://www.accurev.com/download/docs/5.2.0_books/AccuRev_5_2_0_Install_Release_Notes.pdf

5
adam

これは完全に冗談ではありませんが、Mercurialをローカルで実行し、この状況に遭遇したときにMercurialをロールバックし、Accurevに再昇格してから、Mercurialを再びロールフォワードすることができます。私の職場の何人かの開発者は、Accurevを使用するのが非常に面倒であるため、このパターンがある程度の牽引力を得ていると感じています。

2
Tim