2

Как я могу передать файлы в TFS Version Control с помощью Java SDK, но без создания рабочего пространства?Программно фиксировать файлы в TFS с помощью Java SDK без рабочей области

Необходимо создавать (и манипулировать, а затем уничтожать) рабочее пространство каждый раз, когда вы хотите выполнить простую операцию управления версиями 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 программно, без необходимости сопоставления рабочего пространства?

ответ

0

Вы не можете. Сначала необходимо создать рабочую область. Затем запустите ожидающие изменения и затем выполните их. Полагаю, это связано с тем, что TFS всегда будет передавать все файлы сразу при отправке нескольких изменений.

-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 Этот код загружает заданный Элемент без создания рабочего пространства.

+0

Это противоположность: * загрузка * файла из TFS в файловую систему. Я хочу проверить изменения, не касаясь файловых систем (т. Е. * Загружать * вещи в TFS) –

+0

Извините Адама, я ошибся. Итак, @jessehouwing прав, вам нужно создать рабочее пространство. Я попытался извлечь ожидающие изменения из элемента (без создания рабочего пространства), но ни один из методов Item не возвращает PendingChange или PendingSet. Было бы очень полезно, если бы это было. – Waldrich

+0

@Waldrich, пожалуйста, удалите свой ответ, если вы знаете, что это неправильно. Вы получите бронзовую медаль за это, если я не ошибаюсь. Это обычная практика для StackOverflow. – jessehouwing