Я работаю с TFS API, чтобы все рабочие элементы были связаны со всеми наборами изменений между конкретным месяцем. Затем через объекты changeet я использовал свойство commiterDisplaName для фильтрации определенной группы пользователей: "foo1, foo2, foo3".
Это занимает много времени, так как он сначала извлекает все ревизии, а затем через цикл пытается отфильтровать рабочие элементы каждого набора изменений через имя пользователя.
Есть ли способ в TFS API, где я могу получить только набор изменений, сделанный несколькими пользователями напрямую? Я искал через MSDN на этом, но до сих пор не повезло на этом.
Это, несомненно, уменьшит фильтрацию цикла через имя пользователя, которое очень трудоемко.
Благодарю.
VersionControlServer.QueryHistory имеет перегрузку подписи
public IEnumerable QueryHistory(
string path,
VersionSpec version,
int deletionId,
RecursionType recursion,
string user,
VersionSpec versionFrom,
VersionSpec versionTo,
int maxCount,
bool includeChanges,
bool slotMode
)
Обратите внимание на пользователя 5-го параметра. Таким образом, вы можете запрашивать списки изменений конкретного пользователя как
var changesets = vcServer.QueryHistory(
"<your local path>", VersionSpec.Latest, 0, RecursionType.Full,
@"domain\user", null, null, 10, false, false);
Однако этот параметр user
не поддерживает нескольких пользователей. Я не думаю, что любой другой TFS API поддерживает несколько пользователей. Таким образом, вы можете циклически перебирать список пользователей и извлекать хронометры каждого пользователя. Существует еще цикл, но он должен намного быстрее по сравнению с запросом всех наборов изменений.