我有一个项目,我不得不使用ftp作为将文件部署到活动服务器的一种方式。 我正在linux上开发,所以我一起砍了一个bash脚本,用来备份ftp服务器的内容, 删除了ftp上的所有文件,并从mercurial存储库上传所有新文件。 (并照顾用户上传的文件和文件夹,并进行部署后更改等)从shell脚本增量部署
它运行良好,但项目开始变得足够大,使部署过程过长。
我想修改脚本来查找哪些文件已经更改,并且只部署修改后的文件。 (备份很好,atm)
我使用的是mercurial作为VCS,所以我的想法是以某种方式请求两个修订版之间的修改文件,迭代修改后的文件, 并上传每个修改文件,并删除每个删除的文件。
我可以使用hg log -vr rev1:rev2
,从输出中,我可以用grep/sed/etc分割出已更改的文件。
两个问题:
我听说过的恐怖故事,解析LS的输出导致精神错乱,所以我的猜测是,这同样适用于这里, 如果我尝试解析的hg log
输出时,变量将经历分词和各种变换。
hg log
不告诉我一个文件被修改/添加/删除。区分修改和删除的文件将是最不重要的。
那么,这样做的正确方法是什么?我使用yafc作为ftp客户端,以防万一需要,但愿意切换。
rq使用'hg status'(不是日志)在下面给出你的答案。不用担心使用mercurial解析输出 - 作者非常小心地将命令的输出从版本更改为版本。 这就是说,我是你,我会避免滚动自己的增量更新。只需将所有内容发送到服务器上的新目录,然后将新的临时名称重命名为旧的,网络可见的名称。 – 2010-06-18 17:25:24