====== Создание патча для курсовой работы для прохождения автоматических проверок ====== Код для курсовой работы необходимо загружать в __формате патча__. Предъявляемые требования к патчу: * Весь код должен находится в папке src * Папка src должна быть //__второй по вложенности__//, например, ''dir/src'' или ''./src'' Пример патча: diff -ruN -p0 /tmp/tmp.ovCONvikPQ/src/main.c cw/src/main.c --- /tmp/tmp.ovCONvikPQ/src/main.c 1970-01-01 01:00:00.000000000 +0100 +++ cw/src/main.c 2025-04-04 08:37:24.956175891 +0100 @@ -0,0 +1,6 @@ +#include + +int main(){ + printf("Course work for option 3.2, created by Ivan Ivanov."); + return 0; +} ===== Как сделать патч через git ===== git может сделать патч на основе разности коммитов в ветке. Для этого необходимо __сделать коммит__ на вашей ветке (для автоматической проверки **отправлять коммит на github не обязательно**) и выполнить следующую команду из репозитория: git diff --no-prefix main Surname_Name_cw -- /path/to/Surname_Name_cw > src.patch где ''Surname_Name_cw'' -- имя вашей ветки в __репозитории__, ''/path/to/Surname_Name_cw'' -- путь до вашей папки с курсовой работой в __репозитории__ Данная команда сделает патч с именем ''src.patch'' в текущей директории. //Примечание//: вместо имён main и/или Surname_Name_cw можно использовать id коммита **__//Важно//__**: Обязательно наличие флага ''--no-prefix'', иначе проверка не примет ваш патч. ===== Как сделать через скрипт на bash (только для Linux) ===== //__**Внимание**, работает только на Linux!__// Сохраните скрипт себе на компьютер: #!/bin/bash if [ -z "$1" ]; then echo "Path is not provided. Usage ' '" exit 1 fi tmp_dir=$(mktemp -d) diff -ruN $tmp_dir $1 -p0 > src.patch rm -r $tmp_dir //**Важно**//: Не забудьте выдать права на исполнение файлу при помощи команды ''chmod +x '' Затем откройте вашу папку, в которой находится ''src'' Создайте патч: '' ./src'' . Патч будет называться ''src.patch'' ==== Пример ==== Допустим есть следующая иерархия директорий pr ├── cw │ └── src │ └── main.c └── make_patch.sh * Файл ''make_patch.sh'' – сохраненный скрипт для создания патча * Файл ''main.c'' – код с курсовой работой, которую необходимо загрузить в проверку === Вариант 1 === Необходимо перейти в папку ''pr/cw'' и выполнить команду ''../make_patch.sh ./src'' . Теперь должен появится патч ''src.patch'' pr ├── cw │   ├── src │   │   └── main.c │   └── src.patch └── src.patch === Вариант 2 === Необходимо перейти в папку ''pr'' и выполнить команду ''./make_patch.sh cw'' . Теперь должен появится патч ''src.patch'' pr ├── cw │   └── src │   └── main.c ├── make_patch.sh └── src.patch