2008-09-09 6 views
53

Создание патча очень просто в SubVersion, с помощью Tortoise вы щелкните правой кнопкой мыши и выберите Create Patch. Но для моей жизни я не могу найти эту функциональность в TFS. Это возможно?Создание патча с TFS

Если нет, то каков стандартный способ отправки патчей в проектах с открытым исходным кодом для TFS (a la CodePlex)?

ответ

48
tf diff /shelveset:shelveset /format:unified 

Edit: Об этом пишет в стандартный вывод. Вы можете передать вывод в файл.

Дополнительные сведения см. В разделе Difference Command.

+5

Можете ли вы объяснить немного больше? 1. Как вы примените этот патч? 2. Кроме того, если проект доступен только для чтения патчеру, он не может создать полку, не так ли? – 2010-01-12 14:01:27

+0

Существует стандартная UNIX-программа под названием «patch», которая применяет унифицированные различия с исходными деревьями. Я уверен, что вы можете найти реализацию Windows, или вы можете использовать Cygwin. – 2010-01-31 17:56:33

+0

@Doron отображает все различия между полками и текущей папкой рабочего пространства в формате, подобном: http://hg.shrinkrays.net/spruce/changeset/0d00e3c15e2c/raw/spruce-0d00e3c15e2c.diff – 2011-01-27 14:47:15

2

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

Однако, поскольку CodePlex также поддерживает TortoiseSVN, все больше и больше людей используют это для создания своих файлов патчей.

0

Я написал сообщение в блоге об аналогичной проблеме, в которой я использовал команду TF.exe и 7Zip для create a TFS patch file, которые затем могут быть применены на другом сервере TFS или рабочей области. Я опубликовал сценарии Powershell по адресу Github, который можно использовать для переноса любых ожидающих изменений на одну рабочую область, а затем их применения на другой сервер. Его нужно будет изменить, чтобы использовать набор изменений вместо ожидающих изменений, но этого не должно быть слишком сложно.