基于svn的版本发布工具
2016-05-05 14:38
197 查看
问题起源:
在实际生产环境中,项目目录下是不能有.svn文件,因为有这个文件,就有可能会有源代码泄露的漏洞;所以我们不能直接在项目目录下svn update;
解决思路:
既然不能直接在项目目录下svn update,我们可以在一个用户访问不到的目录进行svn update,然后把所有文件拷贝到项目目录下去;然后删除项目目录下的.svn文件;以这样的思路写一个shell脚本后,发布代码只需要执行一下这个shell脚本;相当的便利。
shell脚本代码:
以下代码仅供参考,具体还得根据环境来;上面的代码也只是简单的实现了基本思路和功能
在实际生产环境中,项目目录下是不能有.svn文件,因为有这个文件,就有可能会有源代码泄露的漏洞;所以我们不能直接在项目目录下svn update;
解决思路:
既然不能直接在项目目录下svn update,我们可以在一个用户访问不到的目录进行svn update,然后把所有文件拷贝到项目目录下去;然后删除项目目录下的.svn文件;以这样的思路写一个shell脚本后,发布代码只需要执行一下这个shell脚本;相当的便利。
shell脚本代码:
#!/bin/bash #功能:从svn发布代码到生产环境 #作者:木长 #日期:2016/5/5 #SVN的目录 SVN_PATH=/svn/project/blog/; #生产环境的目录 BLOG_PATH=/usr/local/nginx/html/blog/ if [ -d $SVN_PATH ];then cd $SVN_PATH echo "开始从svn更新文件..."; svn update cd ../ echo "当前所在的目录为:`pwd`"; echo "正在从 $SVN_PATH 同步到 $BLOG_PATH ..."; rsync -rq $SVN_PATH* $BLOG_PATH; cd $BLOG_PATH echo "正在删除$BLOG_PATH 下的 .svn文件"; find . -type d -name ".svn"|xargs rm -rf else echo "不存在 $SVN_PATH 目录;"; fi
以下代码仅供参考,具体还得根据环境来;上面的代码也只是简单的实现了基本思路和功能
相关文章推荐
- 【Bugly干货分享】关于 Android N 那些你不知道的事儿
- elasticsearch 集群搭建
- [Driver] Asix AX88772 kernel module (USB Ethernet)
- 代码的耗时操作
- 代理模式与动态代理
- iOS中的加密操作
- Xcode7.3打包ipa文件 报错和解决
- nodejs 遍历数组的两种方法
- PHP7中我们应该学习会用的新特性
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作
- HTTP method GET is not supported by this URL 中servlet 的405错误
- 著名的开源监控“五大郎”
- OnContextMenu事件
- C++数组与指针的关系
- JSON风格指南
- LeetCode---UglyNumberII解题分析
- 十七 类和实例
- C# Process.Start()
- 查看端口被占用
- Theano---scan函数