在没有工作区的情况下,使用Java SDK以编程方式将文件提交到TFS

在没有工作区的情况下,使用Java SDK以编程方式将文件提交到TFS,java,version-control,tfs,tfs-sdk,team-explorer-everywhere,Java,Version Control,Tfs,Tfs Sdk,Team Explorer Everywhere,如何使用JavaSDK将文件提交到TFS版本控制,但不必创建工作区 每次需要执行简单的TFS版本控制操作时,都必须创建(并操作,然后销毁)一个工作区,这既复杂、耗时又容易出错,因此我宁愿避免这样做(当任意数量的进程可能同时对不同的事物执行不同的操作时,这尤其具有挑战性) 我可以很好地枚举和检索文件: TFSTeamProjectCollection tpc = new TFSTeamProjectCollection(new URI("http://tfs/"), new DefaultNTCr

如何使用JavaSDK将文件提交到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,而不必映射工作区?

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