2013-04-11 2 views
0

Я установил CCNET для создания автообновления с сервера GIT. У меня есть большая проблема: Моего Git-сервер Repo Структура:GIT Source Control запускает триггер при изменении файлов в папке

Repo.git 
     --- Module 1(Folder 1) 
     --- Module 2(Folder 2) 
     --- Module 3(Folder 3) 
     --- Module 4(Folder 4) 
     --- Module 5(Folder 5) 
     --- Module 6(Folder 6) 

CCNET делает триггер последующего приказа Mod1 -> Mod2 -> Mod3 -> Mod4 -> Mod5 -> Mod6

но когда CCNET запускает какие-либо изменения в любом месте (возможно, изменения внесены в Папку 5 (Модуль 5)), но по-прежнему делают сборку, как указано выше. Я не хочу этого делать, это займет много времени. Я просто хочу создать модуль, который был изменен. Кто-нибудь, пожалуйста, помогите мне сделать ccnet так. Спасибо за чтение.

ответ

1

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

Альтернативный подход вы можете использовать Modification Writer Task. Эти задачи записываются в файл XML, который может быть оценен из сценария сборки или командного файла. Основываясь на этом, вы можете сделать свою сборку.

0

ответ от @ domu904 правильный.

Но если вы не хотите менять структуру проекта, вы можете попробовать использовать Filtered Source Control.

С фильтрованным источником управления вы можете указать, включать и исключать правила фильтрации для CCNet для обнаружения изменений.

Таким образом, вы можете включить только конкретную папку git-модуля в проект модуля ccnet.

Для запуска зависимых модулей ccnet-проекты используют Project Trigger.