2012-04-25 2 views
2

Я использую java API StarTeam (v10.4).Использование Java StarTeam API, как я могу найти, какие ревизии элемента StarTeam имеют определенную метку?

У меня есть время heckuva, пытаясь найти, какие конкретные ревизии применяется к этикетке. Что делает этот сложный процесс, так это то, что на объекте Label не существует метода, который предоставляет список того, к чему применяется эта метка.

Таким образом, вам (казалось бы) нужно вернуться назад и найти список элементов, которые вы хотите проверить для определенной метки, например.

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

Во-первых, это своего рода запутанным, потому что вы должны иметь этикетки в первую очередь, когда на самом деле то, что я хотел, чтобы получить список меток, прикрепленных к одной ревизии. Но, ладно, давайте покончим с этим пока. Итак, теперь мне нужно найти одну ревизию из истории. Давайте сделаем это простой и сказать, что я хочу, чтобы получить третий (или четвертый) пересмотр:

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

Теперь проблема заключается в том, что этот новый ребенок из истории имеет тот же идентификатор (через getID()), как родитель, так используя getLabeledItemIds(check_these_items) будет вернуть те же метки и, по сути, мы никуда не денутся.

Я нашел question, связанный с поиском прошлых версий, но не касался поиска наклеек на прошлых версий.

Конечно, я проверил документацию API Borland, но не придумал решение.

Я знаю, что пользовательский интерфейс может сделать это, так что, конечно, есть способ, я просто нашел его.

Любые предложения даже на высоком уровне будут очень признательны!

ответ

1

После того, как у вас есть Item и Label под руку, используйте getFromHistoryByLabelID(int)
в «Возвращает указанную версию этого элемента на основе данной шильдики»

+0

Просто глядя на моих старых постах , да, ты совершенно прав. В конце концов, я сделал повторное внедрение решения в этом направлении. 'int item_rev_at_label = child.getFromHistoryByLabelID (lastLabel.getID()). getRevisionNumber()', а затем 'if (child.getRevisionNumber() <= item_rev_at_label)' ... и т. д. трудно опубликовать код в комментарии. , ! – AndyJ

0

Это все еще не похоже на правильный ответ, но в конечном итоге мне пришлось двигаться дальше и в конце концов воспользовался обходным путем для поиска даты/времени изменения метки, которую я хотел, а затем сравнил ревизию элемента с этим. Таким образом, по типу обратной логики я смог проверить каждую метку, прикрепленную к элементу, и найти, какие ревизии имели эту метку.

Смежные вопросы