私の会社はソース管理にAccurevを使用していますが、そのすべての利点のために、達成する方法がわからない単純なアクションが1つあります。
多くの場合、誰かが誤ってファイルをストリーム構造内で押し上げすぎています。たとえば、「開発」ストリームから「リリース」ストリームまでです。このファイルを「非プロモート」する最良の方法は何ですか?つまり、古いバージョンのファイルを「リリース」ストリームに戻し、新しいバージョンのファイルを、それが属する「開発」ストリームに保持するにはどうすればよいですか?
リリースストリーム内のファイルに対して「バックアップに戻す」またはその他の元に戻すアクションを実行するだけで、古いバージョンのファイルが開発に伝播するか、ファイルが完全に消えます。
上記の場合、開発者は、ストリームの基準時間を設定してフープをジャンプするか、コマンドラインツールを使用して古いトランザクションのチェックアウトを実行し、ファイルを元に戻す必要があります。問題の人が技術的でない場合もあるので、これは良い解決策ではありません。
また、ファイルを「高地」のストリームに移動し、元に戻してから、再び低ストリームに相互プロモーションすることも検討しました。これは本当に厄介なようです。
AccurevはGoogleが役に立たないほどあいまいなようです。そこで、StackOverflowの善良な人々に助けを求めます。これを達成するための「Accurevy」の方法を誰かが理解したでしょうか。
メインストリームブラウザに移動します
誤ってプロモートしたストリームを右クリックして、[履歴を表示]を選択します
履歴ブラウザで、元に戻すプロモートを右クリックし、[元に戻す]を選択します
復帰の結果をどのワークスペースに配置するかを尋ねられます。必要に応じて、誤ってプロモートしたワークスペースを選択できます。
ワークスペースで、ファイルが誤ってプロモートされる前の状態に戻るはずです。これで、それを上のストリームに戻すことができます。ストリームには、誤ってプロモートが削除されたバージョンのファイルが含まれるようになります。
ワークスペースに問題のファイルが含まれなくなったことに注意できますが、誤ってプロモートしたファイルをワークスペースに戻したいと思いませんか?その場合は、ストリームの履歴ブラウザに戻り、作成したばかりのプロモート(編集を元に戻したプロモート)を右クリックして、[元に戻す]を選択します。次に、宛先と同じワークスペースを選択できます。
ファイルはおそらくワークスペースのデフォルトグループに表示され、競合するため、ロットを選択してマージを実行するだけです。ここで簡単なマージを受け入れたいと思うでしょう。
ファイルをマージすると、保留中のフィルターに表示されます。これで、誤ってプロモートする前と同じファイルが保留になり、上記のストリームのファイルには、プロモートする前と同じ内容が含まれるはずです。
そのように単純です(皮肉な意図)。
スティーブ
Accurevの監査に適した、追加のみの性質は、実際には、変更を元に戻すことは、必要なバージョンを再適用することを意味します。直感的には、「1ステップ」後方に移動したいとします。しかし、追加のみのシステムでは、これは実際には、古いバージョンを先に進めて再適用することを意味します。したがって、元に戻すことは、当然、「1ステップ戻る」ではなく「2ステップ進む」プロセスです。
ほとんどの場合、復帰はそれほど頻繁には発生しないため、globalの値 'append only'は復帰レシピ(IMO)を上回ります。
ワンストップショップの一貫したソリューションとして、(あなたが言及したように)最も正確なアプローチはプロモートトランザクションを元に戻すことです。ストリーム履歴を表示し、不要なプロモートを見つけます。RClick> Revert。子ワークスペースが必要になります。なぜですか?元に戻すには、マージを解除する必要がある場合があるためです。インタースティシャルプロモートを元に戻すことを考えてください...それは、サンドイッチからレタスを取り出し、上部と下部のバンズを一緒にマージする必要があるようなものです。 txnベースのシステムでのみ、その復帰にはトマト、マスタード、セロリソルトが含まれ、単一の「元に戻す」ことができます。したがって、マージの変更が存在する場合は、それを保存する必要があります。いずれにせよ、最新のプロモートを元に戻しただけの場合でも、変更をワークスペースに戻し、[不定期]マージを実行して、すべてをプロモートします。
短編小説。 CMシステムで元に戻すことは、手術を行うことに少し似ているため、関係者が関与することをお勧めします。
一歩後退します。私は、accurevストリームを利用して、コードを頻繁に検証し、検証された場合にのみチェーンを昇格させる傾向があります。したがって、昇進するほど、元に戻る可能性は低くなります。
AccuRevバージョン5.2では、ワークスペースを使用せずに、トランザクションを元に戻したり、ストリームで直接発行したりする機能が導入されています。これは「リリース」ストリームの変更を元に戻すのに役立ちますが、質問の2番目の部分を解決しません(新しいバージョンを「開発」ストリームに戻すためです。完全な「昇格/降格」機能は、将来のリリース。
バージョン5.2の詳細については、-のリリースノートにアクセスしてください。
http://www.accurev.com/download/docs/5.2.0_books/AccuRev_5_2_0_Install_Release_Notes.pdf
これは完全に冗談ではありませんが、Mercurialをローカルで実行し、この状況に遭遇したときにMercurialをロールバックし、Accurevに再昇格してから、Mercurialを再びロールフォワードすることができます。私の職場の何人かの開発者は、Accurevを使用するのが非常に面倒であるため、このパターンがある程度の牽引力を得ていると感じています。