2

StarTeam Java API (v10.4) を使用しています。

ラベルが適用されている特定のリビジョンを見つけるのに苦労しています。これをややこしくしているのは、Label オブジェクトに、そのラベルが適用される対象のリストを提供するメソッドがないように見えることです。

したがって、(一見)逆に行って、特定のラベルをチェックするアイテムのリストを見つける必要があります。

int[] check_these_items = new int[]{ item_to_check.getID() };
int[] labelledItems = myLabel.getLabeledItemIDs(check_these_items)

まず、1 つのリビジョンに添付されたラベルのリストを取得することが本当に必要だったのに、最初に Label が必要なため、これはちょっと複雑です。でも、今はそれで行きましょう。そのため、履歴から単一のリビジョンを見つける必要があります。これを簡単にして、3 番目 (または 4 番目) のリビジョンを取得したいとします。

Item specific_child = item_to_check.getHistory()[3];

問題は、履歴からのこの新しい子が ( 経由でgetID()) 親と同じ ID を持っているため、使用getLabeledItemIds(check_these_items)すると同じラベルが返され、基本的にどこにも到達していないことです。

過去のリビジョンの検索に関する質問を見つけましたが過去のリビジョンのラベルの検索に関するものではありませんでした。

もちろん、Borlandの API ドキュメントを確認しましたが、解決策は思いつきませんでした。

私はUIがそれを行うことができることを知っているので、確かに方法があります.私はそれを見つけるのに時間を費やしています.

高レベルであっても、どんな提案でも大歓迎です!

4

2 に答える 2

1

アイテムラベルを手元に用意したら、getFromHistoryByLabelID(int) を使用し
、「指定されたラベル ID に基づいて、このアイテムの指定されたバージョンを返します」

于 2012-12-18T12:36:12.030 に答える
0

これはまだ正しい答えではないようですが、最終的には先に進み、目的のラベルの改訂日時を見つけて、アイテムの改訂をそれと比較するという回避策を使用する必要がありました。そのため、そのタイプの逆ロジックによって、要素に添付されている各ラベルをチェックし、どのリビジョンにそのラベルが付いているかを見つけることができました。

于 2012-05-07T20:52:30.877 に答える