Как найти и просмотреть набор изменений TFS по тексту комментария?

130

С TFS мне нужно найти набор изменений по комментарию и / или разработчику. Может быть, я сегодня просто слепой, но я не вижу в Source Control Explorer простого способа выполнить эту задачу?

Ральф Шиллингтон
источник
Теперь в VSTS / последней TFS вы теперь можете фильтровать коммиты по автору в истории коммитов, но кажется, что вы все еще не можете фильтровать / искать комментарии коммитов ... Я на самом деле не понимаю, как это нельзя предложить, я создал запрос на uservoice: visualstudio.uservoice.com/forums/…
Sÿl 01

Ответы:

21

С установленными электроинструментами:

tf history $/ -r | ? { $_.comment -like '*findme*' }
Ричард Берг
источник
3
Простите за незнание, но что за "?" команда, в которую вы передаете результат tfhistory?
Мэл Росс
3
Это стандартный псевдоним для Where-Object. См. «Help where -full» для получения более подробной информации.
Ричард Берг
4
Это не работает непосредственно в cmd.exeприглашении, но работает в консоли PowerShell (с некоторыми настройками формата параметра -like).
Emyr
166

Если у вас установлены TFS Power Tools, вы можете запустить это в командной строке:

tfpt searchcs

чтобы получить окно графического интерфейса с параметрами поиска по коммиттеру и тексту комментария. Я использую TFS Power Tools (версия от марта 2011 г.) и TFS 2010.

Кент Ху
источник
4
У меня это сработало, с некоторыми изменениями в настройках. Server name: формат URL моего сервера был tfs01: 8080 / tfs , который я нашел в VS2010, меню «Команда», «Подключиться к Team Foundation Server», «Серверы ...», и там был существующий сервер. Under server path:Я заметил, что он действительно ищет путь к локальной карте, поэтому это был C: \ tfs \ myfolders \ etc, а не путь URL-адреса с точки зрения сервера.
goodeye 07
1
Stackoverflow преобразовал мой вышеупомянутый комментарий относительно моего формата URL в ссылку. Это действительноhttp://tfs01:8080/tfs
goodeye
У меня работал с VS2010, хотя TFS - 2008. Последняя версия TFPT2010, август 2011 г.
Пол Капустин
1
Также работает в Visual Studio 2012 с TFS 2012.
jessegavin
2
Это сработало для меня из cmd.exe, но не из командного окна VS.
rstackhouse 01
100

ЛЕГКИЙ СПОСОБ и никаких сторонних приложений / надстроек не требуется:

  1. Обозреватель с открытым исходным кодом
  2. "Просмотр истории" из корня сервера TFS
  3. Прокрутите вниз (это быстро, если постоянно нажимать кнопку «Конец»)
  4. Выбрать все записи, скопировать
  5. Откройте Excel и вставьте

Теперь Excel позволит вам искать в комментариях (Excel - это собственное приложение, не спорьте ...).

Ани
источник
14
Я не думаю, что вы будете искать во всем сообщении фиксации более длинные сообщения фиксации, используя этот метод (обратите внимание на многоточие, присутствующие при вставке), что сделает это полезным, если вы уверены, что ищете что-то в первом -строчный синопсис, но в остальном опасен.
1
такой простой и нулевой способ конфигурации
Мостафа Арманди
5
Признаюсь, сначала я съежился, когда впервые прочитал это, но потом я сказал, черт возьми, со сторонними инструментами, эта идея отлично работает. Спасибо!
Крис Хоукс,
3
Это не решение, если у вас более 100000
Диого Луис
3
Жалко, что мне приходится это делать. ;)
Kai Hartmann
20

Сейчас это делает надстройка Visual Studio: http://visualstudiogallery.msdn.microsoft.com/3f65dee8-5a44-4771-929b-26531c482fbf .

Дэвид
источник
3
Жаль, что это не доступно для VS 2012 и VS 2013
Андрия
2
Если вы зайдете на сайт проекта CodePlex, вы найдете версию VS2012 (которую я не тестировал). findchangeset.codeplex.com
Maarten
2
Но если честно, пользоваться tfpt searchcsпроще.
Maarten
Ага, да. Я использовал его раньше, но не мог вспомнить, как начал, лол. Вы просто запускаете Visual Studio Command Promptи выполняете команду @Maarten, упомянутую выше. Конечно, сначала вы должны установить Power Tools!
Strider
15

В качестве альтернативы, без установки электроинструментов, следующая команда будет работать, если вы ищете поисковый запрос findme .

Окна: tf history "$/Team Project/Development" /noprompt /recursive | findstr findme

Linux: tf history "$/Team Project/Development" /recursive | grep findme

NB . Пожалуйста, поблагодарите этого парня, если вы нашли это полезным.

Христо
источник
2
добавьте «/ формат: подробный», если вы хотите искать по всему сообщению. Если это занимает слишком много времени, установите границы дат (например, «/ v: D1 / 1/2012 ~ D12 / 31/2012»), чтобы уменьшить пространство поиска.
8

Вы можете использовать клиент командной строки: направить вывод истории tf в файл, а затем использовать любую программу поиска, которую вы предпочитаете.

stuartd
источник
5
пример: tf history $ / / r / user: имя пользователя / формат: подробный> d: \ changeset_details.txt
ray
2

Я не знаю, как это сделать с помощью текста комментария, но это позволит искать разработчику:

Если вы откроете пункт меню File-> Source Control-> Find In Source Control-> Changesets ... (вы должны быть в Source Control Explorer, чтобы это было доступно). Откроется диалоговое окно «Найти наборы изменений». Затем вы можете искать наборы изменений, разработанные разработчиком в заданной исходной папке (или проекте).

Это покажет вам комментарии, но вы не сможете их искать. (Хотя вы можете отсортировать список по комментариям и таким образом найти комментарий, который вы ищете.)

Кстати, если вы хотите увидеть детали набора изменений в этом диалоговом окне, вам нужно нажать кнопку Details. Двойной щелчок по набору изменений закрывает диалог.

Vaccano
источник
1
@Downvoter - Почему голос против? В ОП сказано «и / или разработчик». Это ответ «Или разработчик».
Vaccano
2

Чтобы увидеть отметки для члена команды:

В проводнике группы перейдите к командному проекту, перейдите к участникам группы, щелкните правой кнопкой мыши члена группы, для которого вы хотите просмотреть наборы изменений, и выберите «Показать историю регистрации».

Филип Нган
источник
2

Я добавил tfpt searchcsиз TFS Power Tools в качестве внешнего инструмента в VisualStudio:

  • Команда: C:\Program Files (x86)\Microsoft Team Foundation Server 2015 Power Tools\TFPT.EXE (или где бы вы ни установили свои TFS Power Tools)
  • Аргументы: searchcs /collection:http://tfsserver:8080/tfs $(SolutionDir) (путь решения преобразуется в путь к серверу)
  • Начальный каталог: c:\path\to\your\vs\IDE(если только он не tf.exeнаходится на вашем пути (что не так по умолчанию), это гарантирует, что вы можете просмотреть детали набора изменений из диалогового окна поиска, поскольку он запускается tf.exe)
Спок
источник
1

Я смог сделать это в разделе кода веб-портала TFS.

Перейдите к TFS в вашем браузере, перейдите к коду, нажмите на наборы изменений, затем расширенный поиск. Вы можете фильтровать по пользователю и диапазону дат. Вы не можете выполнять поиск по комментарию, но если у вас есть общий диапазон дат, вы можете отфильтровать его, а затем использовать поиск в браузере (ctrl + f).

Унифицированные
источник
Это намного проще, чем копировать в Excel. Лучший ответ на данный момент, ИМХО. Вам даже не нужно вводить диапазон дат; просто нажмите «Найти», и вы получите все изменения; с комментариями.
Protector one
1
Для меня нет расширенного поиска: /
Twometer
он, должно быть, был перемещен или изменен с 2015 года.
Согласовано