Содержание
Создание патча для курсовой работы для прохождения автоматических проверок
Код для курсовой работы необходимо загружать в формате патча. Предъявляемые требования к патчу:
- Весь код должен находится в папке 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 <stdio.h> + +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 '<path/to/script> <dir/to/patch>'" exit 1 fi tmp_dir=$(mktemp -d) diff -ruN $tmp_dir $1 -p0 > src.patch rm -r $tmp_dir
Важно: Не забудьте выдать права на исполнение файлу при помощи команды chmod +x <path/to/script>
Затем откройте вашу папку, в которой находится src
Создайте патч: <path/to/script> ./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