我正在尝试设置特定的工作流程,但无法弄清楚 rsync 如何(或是否)为此工作。
我的设置是在 Mac OS X 上。
我有我的 SVN 目录。当我运行我的部署脚本时,这些文件被移动到我的集成 Apache 服务器上。我对文件进行了修改,然后手动将它们复制回 SVN。
我这样做的原因是我需要在编辑 html、css 和 javascript 时立即看到浏览器中的变化。但是尝试手动复制和跟踪它变得很耗时,我想自动化它。
我想要做的是使用 rsync 来确定我在 Apache web 目录中修改的文件,然后只将这些文件复制回 SVN。
我有一个我一直在测试的 rsync 命令,但我似乎遇到的问题是,由于已部署文件的时间戳都比 SVN 中的新,rsync 想要将所有文件复制回来,因为它看到了它们作为较新的文件。
我还尝试了 diff,它可以检测文件差异。我想我可以组合一个 shell 脚本,它可以使用 diff、grep 和 cp 的组合来完成这项工作,但我想看看 rsync 是否可以成为一个多合一的解决方案。
rsync -avuzn --exclude=web-inf/classes/ --exclude=web-inf/lib/ /var/www/web-inf /usr/local/src/svn/WEB-INF