У меня есть учетная запись на сервере в моем университете. Я хочу поделиться кодом программы с другим студентом. Я думал, что должен положить это на свой аккаунт GitHub. К сожалению, я не могу, потому что код является частью конкурса.
Я решил сделать Makefile, чтобы мы могли легко загружать и скачивать файлы. Через некоторое время я наконец понял, что этого недостаточно. Затем я внедрил систему исправлений, чтобы сохранить только изменения. Не должно быть проблем с небольшими одновременными изменениями.
Makefile почти делает всю работу, но есть некоторые детали, которые я не могу решить. Makefile
all: download
PHONY: all, download, upload, getFiles
.ONESHELL:
getFiles:
rm ../.tmp -r
mkdir ../.tmp
@(ssh $(user)@host "tar c *") | tar xv -C ../.tmp
download: getFiles
@diff -u ../.tmp . | patch -p1
rm ../.tmp -r
upload: getFiles
@diff -uN ../.tmp . | (ssh $(user)@host "patch -p1")
rm ../.tmp -r
Я удалил все данные с хоста. Сейчас я хочу загрузить, но tar останавливает программу, потому что нет файлов для загрузки, чтобы узнать об изменениях.
Более того, я не могу принять решение по этому поводу: использовать ли -N в diff или нет? Просто я не знаю, как он себя ведет, когда удаляю файл.
Есть еще одна проблема: когда что-то идет не так, каталог .tmp не удаляется. Каталог должен быть удален каждый раз. Следующее действие всегда загружает текущий статус "хранилище".
Я полностью осознаю тот факт, что это не репозиторий, но я не могу настроить серверную программу на удаленном хосте, и я думаю, что Makefile сделает эту работу за меня.
Любые советы будут оценены.