使用没有Workspace的Java SDK以编程方式将文件提交到TFS

时间:2013-07-11 16:40:09

标签: java version-control tfs tfs-sdk team-explorer-everywhere

如何使用Java SDK将文件提交到TFS版本控制,但无需创建工作区?

每次想要进行简单的TFS版本控制操作时,必须创建(并操纵,然后销毁)工作区是复杂,耗时且容易出错的,所以我宁愿避免这种情况(当任意时它特别具有挑战性进程数量可能同时对不同的事物执行不同的操作。)

我可以很好地枚举和检索文件:

TFSTeamProjectCollection tpc = new TFSTeamProjectCollection(new URI("http://tfs/"), new DefaultNTCredentials());
VersionControlClient versionControlClient = tpc.getVersionControlClient();
Item item = versionControlClient.getItem("$/Project/some/file.txt", LatestVersionSpec.INSTANCE, DeletedState.NON_DELETED, true);
versionControlClient.downloadFileToStream(new DownloadSpec(item.getDownloadURL()), outputStream, true);

反过来怎么样?有没有办法以编程方式将文件或变更集推送到TFS,而不必映射工作区?

2 个答案:

答案 0 :(得分:0)

你做不到。您需要始终首先创建工作区。然后批处理挂起的更改,然后提交它们。我想这是因为TFS在提交多个更改时会一次提交所有文件。

答案 1 :(得分:-1)

是的,如果您有Item_ID及其变更集编号,则可以:

VersionControlClient vcc = tpc.getVersionControlClient();
Item item = vcc.getItem(item_id, changeset);
String destinationFile = "\\\\server\\itemName.cs";
item.downloadFile(vcc, destinationFile);

使用com.microsoft.tfs.sdk-11.0.0.jar可以正常使用 此代码下载给定的项目而不创建工作区。