I am not sure what exactly you mean by "full repo change", but you can retrieve WI history like below. Is this what you are looking for?
private static void findAllWorkitemHistory(ITeamRepository repository) throws TeamRepositoryException {
IProcessItemService processItemService = (IProcessItemService)repository.getClientLibrary(IProcessItemService.class);
List<IProjectArea> projectArea = processItemService.findAllProjectAreas(null, null);
Iterator<IProjectArea> iter = projectArea.iterator();
while(iter.hasNext()){
IProjectArea area = (IProjectArea)iter.next();
IWorkItemClient workItemClient = (IWorkItemClient)repository.getClientLibrary(IWorkItemClient.class);
IQueryClient queryClient = workItemClient.getQueryClient();
IAuditableClient auditableClient = (IAuditableClient)repository.getClientLibrary(IAuditableClient.class);
IQueryableAttribute attribute = QueryableAttributes.getFactory(IWorkItem.ITEM_TYPE).findAttribute(area, IWorkItem.PROJECT_AREA_PROPERTY, auditableClient, null);
Expression expression = new AttributeExpression(attribute, AttributeOperation.EQUALS, area);
IQueryResult<IResolvedResult<IWorkItem>> results = queryClient.getResolvedExpressionResults(area, expression, IWorkItem.FULL_PROFILE);
List<IResolvedResult<IWorkItem>> page = results.nextPage(null);
Iterator<IResolvedResult<IWorkItem>> iterResult = page.iterator();
while(iterResult.hasNext()){
IResolvedResult<IWorkItem> resolvedResult = iterResult.next();
IWorkItem workItem = resolvedResult.getItem();
System.out.println("Project Area: " + area.getName() + " ID: " + workItem.getId() + " Name: " + workItem.getHTMLSummary());
List<?> history = repository.itemManager().fetchAllStateHandles((IAuditableHandle)workItem.getStateHandle(), null);
if(history.size() == 0){
continue;
}
for(int i = history.size() -1; i >= 0; i--){
IAuditableHandle zz = (IAuditableHandle)history.get(i);
//IAuditable zz1 = repository.itemManager().fetchCompleteState(zz, null);
IWorkItem workItemPrevious = (IWorkItem)repository.itemManager().fetchCompleteState(zz, null);
System.out.println("history start");
System.out.println("ID: " + workItemPrevious.getId() + " Name: " + workItemPrevious.getHTMLSummary());
System.out.println("history end");
}
}
}
}
Comments
In RTC, each component in a stream/workspace has a change history (RTC would call it a "change set history"). Then for each change set in that change set history, you can ask for the associated work item(s).
Note that "project" is not a term used in RTC (except sometimes as an informal abbreviation for a longer term), so to avoid ambiguity, you'd want to use one of the RTC terms ("project area", "work item", "stream", etc.).
I personally am not familiar with that API, so I'll post this as a "comment" rather than an "answer".