我在我大学的服务器上有一个帐户。我想与另一名学生分享一个程序代码。我以为我应该把它放在我的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吗?简单地说,我不知道删除文件时的行为方式。
还有一个问题:当出现问题时,不会删除.tmp目录。每次都应删除该目录。下一步操作总是下载当前的“存储库”状态。
我完全认识到它不是一个存储库,但我无法在远程主机上设置服务器程序,我认为Makefile将为我完成这项工作。
任何提示将不胜感激。
您是否考虑通过电子邮件发送补丁?
—
丹尼尔贝克
不,我认为使用makefile更方便。
—
lord.didger 2011年
@ lord.didger:Daniel的意思是“你考虑过使用git-format-patch / git-send-mail”......以及与commit-hooks的结合。
—
akira
为什么不通过SSH使用Git存储库?
—
cYrus 2011年
git over email?那将是最好的选择。不幸的是,我对git有非常基本的了解。了解如何通过电子邮件发送git需要一些时间。@cYrus:Git over ssh?你是什么意思?
—
lord.didger 2011年