# Структура репозитория Для того чтобы упростить контроль версий проекта, проект хранится в следующем виде: * репозиторий для сурс файлов * репозиторий для tcl-скриптов ![RepoStruct.jpg](pics/RepoStruct.png) Рис. 1. Репозиторий проекта # Правила работы с репозиторием 1. Репозитории хранятся на в корне диска C локальных машин. 2. Репозитории и рабочии проекты именуются в соответтсвии со следующими правилами: 2.1 В названии репозитория/проекта указывается название устройства для которого предназначен проект. 2.2 После названия через нижнее подчеркивание пишется тег, указывающий на репозиторий репозиторий. 2.3 При работе с удаленным репозиторием, локальный репозиторий должен иметь `такое же` название как удаленный. 3.4 Локальная директория проекта может называться как удобно, но для удобства предлагается использовать теги как указатели на директорию с проектом и директорию с репозиторием. Нейминг репозиториев очень важен по причине того, что сборка проекта ведется через скрипт в котором прописаны пути к файлам в репозиториях. Если Будут отличаться имена репозиториев, то при сборке vivado просто не найдёт файлы и не соберет проект. Пример: ```tcl S5244_REPO S5244_PROJ S5243_FFT_REPO S5244_FFT_PROJ ``` 3. При совместной работе над одним проектом, работа обязательно ведется в !отдельной! ветке. После оканчания работы и утверджения изменений сливается в основную ветку. 3. Файлы хранятся в локальном репозитории !отдельно! от проекта и в него не копируются, а добавляются в проект ссылочно. Соответственно при необходимости добавить новый файл с кодом в проект, он добавляется в соответствующую папку в репозитории и оттуда добавляется к проекту. # Скачивание и сборка проекта 1. Скачиваем файлы из репозитория на локальную машину. 2. Создаем папку проекта. 3. Запускаем Vivado 3.1 Переходим в папку генерации проекта. Для этого в tcl консоли нужно выполнить команду. ```tcl cd C:/. ``` 3.2 Теперь находясь в нужной директории необходимо запустить tcl-скрипт `recreate.tcl` из папки локального репозитория. Для этого в `Vivado` выбираем `Tools -> Run Tcl Script`. Скрипт собирает проект под нужную плис с нужными настройками этапов работы IDE и сам создаст нужные IP если они есть.