На случай, если кому-то будет интересно, я смог достичь этого только с помощью Hudson и Perforce.
При использовании Perforce в качестве SCM (не знаю о других) есть флажок «Использовать маску просмотра». Проверка, позволяющая вам выбирать, какие каталоги / файлы в Perforce опрашивать, фактически не вытягивая эти файлы. Например, я имел в виду:
// склад / my_script
Я не хотел, чтобы мой скрипт запускался автоматически при появлении новой версии, поэтому я поместил его в текстовое поле «Исключить файлы опроса»:
// склад / my_script
Который вытягивает последнюю версию моего скрипта. Затем я установил флажок «Использовать маску просмотра» и поставил:
// склад / my_code_to_compile /
в поле View Mask.
Чтобы выполнить опрос Perforce на предмет изменений, я просто проверил «Опрос SCM» в триггерах сборки, а затем проверял каждую минуту. (вставив «* * * * *» в поле «Планировщик»)
Итак, подведя итог, с переменными, указанными выше, моя работа в Гудзоне имела следующее поведение:
проверять наличие изменений каждую минуту
При внесении изменений в // depot / my_code_to_compile / будет выполняться задание Hudson
При изменении // depot / my_script ничего не произойдет
Задание будет извлекать изменения в my_script, но ничего не загрузит с //depot/my_code_to_compile/.