Getting filename, location and author of changed files using RTC source control

匿名 (未验证) 提交于 2019-12-03 02:23:02

问题:

I'm trying to access the filename, location and author of changed files for a given stream. Below code is what I have so far. Looking at the api documentation this does not seem possible? Can this be achieved using the java api or some other method ?

        IChangeSetSearchCriteria c = IChangeSetSearchCriteria.FACTORY.newInstance();         WorkspaceManager mgr = (WorkspaceManager) SCMPlatform.getWorkspaceManager(repo);         IWorkspaceSearchCriteria criteria = IWorkspaceSearchCriteria.FACTORY.newInstance();         criteria.setKind(IWorkspaceSearchCriteria.STREAMS);         criteria.setExactName("mystream");  

回答1:

Note: try to not use the Stream name directly, as a Stream can be renamed or another Stream can have the same name.
See this thread for more.

If they're running on the command line, then you can take the UUID of the stream, create a handle from it and set the value in the search criteria (although you may want to fetch the stream first, since the user may have made a typo).

For going from a UUID to an ItemHandle

workspaceHandle = (IWorkspaceHandle)IWorkspace.ITEM_TYPE.createItemHandle(workspaceID, null); 

Regarding listing the content of a changeset, this thread provides some clues:

If the versionable represents a file, it will be an instance of an IFileItem which has a content object associated with it.
You can get a stream to the contents from the content object.

Again, fetching the changeset (as in this thread) can be key to be sure to get all the data.


Note: taking the REST API route might be easier:
Your query is a POST

Request URL:https://jazzServer/jazz/oslc-scm/changeSet?jazz_scm:workspaceId=_OQt98EyrEeGAvYGjhK23_g&jazz_scm:maxResults=25&jazz_scm:changeKind=31 Request Method:POST Cookie:SaveStateCookie=undefined%2Ccom.ibm.team.workitem.category%2Ccom.ibm.teamz.dsdef.category%2Ccom.ibm.team.dashboard.category%2Ccom.ibm.team.dashboard.category~%23_~%23com.ibm.team.dashboard.server.saveTeamDashboard; JSESSIONID=BF3DA3D5E0FCA16193876307E91A5471; JazzFormAuth=Form; net-jazz-ajax-cookie-rememberUserId=VonC; JSESSIONIDSSO=05626E20EC4F6DB231759EFC4DB69785 Host:jazzServer Origin:https://jazzServer Referer:https://jazzServer/jazz/web/projects/My%2°RTC%20Project  Form Dataview URL encoded {"propertyRequest":{"jazz_scm:lastModified":null,"jazz_scm:creator":{"dcterms:name,rdf:resource":null},"jazz_scm:reasons":{"dcterms:title,rdf:resource":null},"jazz_scm:relatedArtifacts":{"dcterms:title,dcterms:description,rdf:resource,jazz_scm:linkTypeId,oslc_scm:mimeType":null}}}: 

That will return:

{jazz_scm:firstTimestamp:1350975540822, jazz_scm:lastTimestamp:1350285276229,…} jazz_scm:firstTimestamp: 1350975540822 jazz_scm:lastTimestamp: 1350285276229 jazz_scm:results: [{rdf:resource:https://jazzServer/jazz/oslc-scm/changeSetId/__KSygRzVEeK_Q6KSNVybvA,…},…]     0: {rdf:resource:https://jazzServer/jazz/oslc-scm/changeSetId/__KSygRzVDeK_Q6KSNVybvA,…}     dcterms:description: "Check-in of xslts into RTC taken from UAT server."     dcterms:identifier: "itemOid/com.ibm.team.scm.ChangeSet/__KSygRzVDeK_Q6KSNVybvA"     dcterms:modified: 1350975540822     dcterms:name: null     dcterms:type: "com.ibm.team.scm.changeSet"     jazz_scm:creator: {,…}         dcterms:description: null         dcterms:identifier: "itemOid/com.ibm.team.repository.Contributor/_YakgYGUUEeCXgMjSYYyTpw"         dcterms:modified: 1321511726283         dcterms:name: "a User"         dcterms:type: "com.ibm.team.scm.contributor"     jazz_scm:itemId: "_YakgYGUUEeCXgMjSYYyTpw"     jazz_scm:itemType: "com.ibm.team.repository.Contributor"     prefixes: {dcterms:http://purl.org/dc/elements/1.1/, rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#,…}     qname: "jazz_scm:Contributor"     rdf:resource: "https://jazzServer/jazz/oslc-scm/itemOid/com.ibm.team.repository.Contributor/_YakgYGUUEeCXgMgSYYyTpw"     jazz_scm:itemId: "__KSygRzVDeK_Q6KSNVybvA"     jazz_scm:itemType: "com.ibm.team.scm.ChangeSet"     jazz_scm:lastModified: null     jazz_scm:reasons: [{rdf:resource:itemName/com.ibm.team.workitem.WorkItem/258061,…}]     jazz_scm:relatedArtifacts: []     prefixes: {dcterms:http://purl.org/dc/elements/1.1/, rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#,…}     qname: "oslc_scm:ChangeSet"     rdf:resource: "https://jazzServer/jazz/oslc-scm/changeSetId/__KSygRzVEeK_Q6KSNVybvA" 1: {rdf:resource:https://jazzServer/jazz/oslc-scm/changeSetId/_Pg_RMRwzEeK_Q6KSNVybvA,…} 2: {rdf:resource:https://jazzServer/jazz/oslc-scm/changeSetId/_3L3gcRwyEeK_Q6KSNVybvA,…} .... 

With _OQt98EyrEeGAvYGjhK23_g the workspaceItemId of the Stream (a Stream is a Workspace with the element "stream" set to true!)

You can get the WorkspaceItemId of a Stream with the following query:

Request URL:https://jazzServer/jazz/service/com.ibm.team.scm.common.internal.rest.IScmRestService2/searchWorkspaces?workspaceName=A%20STREAM%20NAME&workspaceNameKind=partial%20ignorecase&maxResultSize=50&workspaceKind=both Request Method:GET Cookie:SaveStateCookie=undefined%2Ccom.ibm.team.workitem.category%2Ccom.ibm.teamz.dsdef.category%2Ccom.ibm.team.dashboard.category%2Ccom.ibm.team.dashboard.category~%23_~%23com.ibm.team.dashboard.server.saveTeamDashboard; JSESSIONID=BF3DA3D5E0FCA16193876307E91A5471; JazzFormAuth=Form; net-jazz-ajax-cookie-rememberUserId=VonC; JSESSIONIDSSO=05626E20EC4F6DB231759EFC4DB69785 Host:jazzServer Referer:https://jazzServer/jazz/web/projects/A%20STREAM%20NAME X-Requested-With:XMLHttpRequest Query String Parametersview URL encoded workspaceName:A STREAM NAME workspaceNameKind:partial ignorecase maxResultSize:50 workspaceKind:both 

That will return results including:

<workspaces>     <workspace itemId="_OQt98EyrEeGAvYGjhK23_g" properties="">         <stateId>_-flUwBwpEeK_Q6KSNVybvA</stateId>         <immutable>true</immutable>         <contextId>_Dp6kMdwTEd2jUupDpEV1Rw</contextId>         <modified>2012-10-32T10:22:18.766Z</modified>         <name>A Stream Name</name>         <stream>true</stream>         <description>a stream</description>         <time>109</time>         <customContext xsi:nil="true"/>         <normalizedName>a stream name</normalizedName>         <readPermissionMode>0</readPermissionMode>         <modifiedBy itemId="_Y70gkCYmEeGAvYGjhJ23_g"/>         <owner itemId="_ICt_wDL6EeGeLde_4UGHCg" xsi:type="process:ProjectAreaHandle"/>         <flows>            ... 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!