Muzammil Shareef
Muzammil Shareef

Reputation: 219

How to get changeset information from tfs using Java tfs-sdk

I tried with the below code

     TFSTeamProjectCollection tpc =
                new TFSTeamProjectCollection(URIUtils.newURI(COLLECTION_URL), credentials );

            VersionControlClient srcctrl = tpc.getVersionControlClient();
         Changeset[] chngset;
        try {
            chngset = srcctrl.queryHistory("http://******/tfs/SpectaTestCollection/", LatestVersionSpec.INSTANCE, 0, RecursionType.FULL, null, new DateVersionSpec("6/10/2014"), LatestVersionSpec.INSTANCE, Integer.MAX_VALUE, false, true, false, true);

             for(Changeset ch : chngset)
                {
                    System.out.println("Change Set ID : "+ ch.getChangesetID());
                    System.out.println("Owner : "+ ch.getOwner());
                }
        } catch (ServerPathFormatException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

But eveytime getting this error : There is no working folder mapping for D:\WorkSpace\test-workspace\tfsplay.game\http:********\tfs\SpectaTestCollection.

where "D:\WorkSpace\test -workspace\tfsplay.game" is my local workspace.

can anyone help me in guiding to the right way for doing this

Upvotes: 3

Views: 999

Answers (2)

prem
prem

Reputation: 11

public class TestTfsExample {

    public static void main(String[] args) 
    { 


        Credentials cred=new UsernamePasswordCredentials("username","password") ;

        TFSTeamProjectCollection tpc =new TFSTeamProjectCollection(URIUtils.newURI("Application_Collection_url")
            , cred);


        WorkItemClient workItemClient = tpc.getWorkItemClient(); 

        Changeset[] chngset=null;

        LabelSpec lable=new LabelSpec("tfs_start_Label", null);

        LabelSpec lable1=new LabelSpec("tfs_end_label", null);

        try {

            chngset = tpc.getVersionControlClient().queryHistory("$project_directory", LatestVersionSpec.INSTANCE, 0, 
                RecursionType.FULL, null,new LabelVersionSpec(lable1), new LabelVersionSpec(lable), Integer.MAX_VALUE, true, true, false, true);

        } catch (ServerPathFormatException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();
        }

        for(Changeset ch : chngset)
        {
            System.out.println("Change Set ID : "+ ch.getChangesetID());

            System.out.println("Owner : "+ ch.getOwner());


            Change changes[]=ch.getChanges();

            System.out.println("Date : "+ new     Date(ch.getDate().getTimeInMillis()));


            for(Change chang:changes)
            {
                System.out.println(chang.getItem().getServerItem());;

                //System.out.println("Owner : "+         chang.getItem().getItemType().toString());

            }
         }  



   }

}

Upvotes: 1

Edward Thomson
Edward Thomson

Reputation: 78623

Don't pass a URL to the queryHistory method, pass a server path or a local path.

You're getting this error because you have passed a path that is not a server path (does not start with $/), so the system is trying to understand what server path you have mapped to http://...etc. Since that URL is also not a local path, you have gotten that error.

If you want to see all history, pass the server path $/.

Upvotes: 4

Related Questions