2010-02-08 2 views
7

git-bisect предлагает крючки для выполнения бинарного поиска по ревизиям и определения, изменение которого нарушило дизайн. Есть ли эквивалентный сценарий для Perforce? Я сделал SO и поисковые запросы Google не повезло.Есть ли сценарий, предоставляющий эквивалент git-bisect для Perforce (p4)?

Обновление от 1 марта 2010 г. Как правильно указал Дуглас Ледер, это легко с линейной историей. Однако у нас есть несколько ветвей слияния между ветвями, поэтому это не так тривиально, как это было бы с линейной историей. Кроме того, создание и тестирование кода занимает некоторое время (часы), поэтому автоматический тест был бы приятным, если бы он прошел без моего возвращения и для работы на ночь/на выходных.

+2

Это не скрипт, но вы можете попробовать импортировать историю p4 в локальное репозиторий git и использовать 'git bisect' там. См. Http://git-scm.com/docs/git-p4. Будьте предупреждены, что для больших проектов p4 требуется долгое время, чтобы импортировать всю историю. –

+1

нашло это: https://github.com/Ravenbrook/mps/blob/master/tool/p4-bisect –

ответ

-3

Я не думаю, что какой-либо явный инструмент существует, я думаю, потому что синхронизация с точкой в ​​истории в централизованной системе управления источниками намного проще, поэтому никто не почувствовал необходимость в инструменте.

Просто выполните синхронизацию в истории до тех пор, пока вы не достигнете точки, где регрессия (которую вы пытаетесь проследить) больше не происходит, а затем синхронизируйтесь с историей между этой точкой и HEAD, пока не найдете проблему.

+0

История Perforce также имеет тенденцию быть более линейной. – Arafangion

+4

'git bisect' - это о бинарном поиске между коммитами и автоматическом обнаружении дефекта, написав модульные тесты. Делать это вручную довольно бессмысленно, как на больших системах, может быть несколько часов между сборками, и кто хочет выполнить бинарный поиск вручную? – liberforce

+0

Даже если история линейна, что-то похожее на 'git bisect' полезно, потому что вам не нужно вручную делиться списками изменений и проверять файлы. –

Смежные вопросы