# Структура репозитория Для того чтобы упростить контроль версий проекта, проект хранится в следующем виде: * репозиторий для сурс файлов * репозиторий для 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. Переходим на главную страницу https://gogs.druzhinin.pro/ и выбираем нужный нам репозиторий. Например S5243_FFT_REPO. 2. На своей локальной машине создаем репозиторий с соответствующим именем. (`Внимательно и в соответствии с разделом Правил работы с репозиторием`) 3. Добавляем внешний репозиторий в список Внешних репозиториев. Для этого потребуется ссылка, найти её можно на странице репозитория. ![RepoLink.jpg](pics/RepoLink.png) 4. Скачиваем файлы из репозитория на локальную машину через "Получить-слияние" или "Pull-merge". Теперь у вас есть все актуальные файлы с внешнего репозитория. Осталось только развернуть проект. 1. Создаем папку проекта. 2. Запускаем Vivado 3.1 Переходим в папку генерации проекта. Для этого в `tcl консоли Vivado` нужно выполнить команду. ```tcl cd C:/. ``` 3.2 Теперь находясь в нужной директории необходимо запустить tcl-скрипт `recreate.tcl` из папки локального репозитория. Для этого в `Vivado` выбираем `Tools -> Run Tcl Script`. Скрипт собирает проект под нужную плис с нужными настройками этапов работы IDE и сам создаст нужные IP если они есть.