====== Создание патча для курсовой работы для прохождения автоматических проверок ======
Код для курсовой работы необходимо загружать в __формате патча__. Предъявляемые требования к патчу:
* Весь код должен находится в папке 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