背景:我需要编辑一个网站。访问文件的唯一方式是 FTP。但由于我不是唯一会编辑它的人(而且我希望能够回滚以及许多其他原因),我们需要版本控制系统。
以前(在我们自己的服务器上,我们有根目录),我们曾经使用带有提交后挂钩的 SVN,它更新了站点目录中的文件(站点曾经位于同一个 Linux 服务器上)。
是否可以制作提交后挂钩,通过 FTP 将更新的文件上传到远程服务器?有什么方法可以检测“刚刚更新”的文件?也许有现成的解决方案?
答案1
是否可以制作提交后挂钩,通过 FTP 将更新的文件上传到远程服务器?
是的,有可能
有什么方法可以检测“刚刚更新”的文件?
至少两个(AFAICR):
svn log -v -q -r HEAD REPO-URL
(从任何位置)svnlook changed REPO_PATH
(对于 REPO 主机,其中 REPO_PATH 是 FS 上的本地路径)
嗯,正如我所看到的,你必须在提交后钩子中解决两个连续的子任务(如果你解决了正确的任务:从 repo 更新网站,而不是逆向修改 ^ 通过来自以下位置的已更改文件更新 repo一些独立的地点)
- 构建文件树,受修订影响
- 使用纯 FTP 在远程主机上上传这棵树
任务 1 的解决方案
我提到的前三个脚本中的任何一个这里(在野外网络中也可能存在其他实现)
任务 2 的解决方案