极速地将git项目部署到SAE的svn服务器上
本文最初发布于我的个人博客:http://jerryzou.com/posts/gitForSAE/
我花了一些时间自己写了一个能够极速地将一个git项目部署到SAE的svn服务器上的脚本。代码不是复杂,也没有很深的技术。但确实是个好用的小工具,至少对我来说,不用把我的git项目打包成zip再上传了,确实提高了超多效率!我将首先介绍一下脚本如何使用,再介绍我是如何实现这个shell脚本的。项目地址:https://github.com/zry656565/git-for-SAE
功能
- 一个脚本搞定将git项目部署到SAE的svn服务器上
- 可以很方便地管理SAE上的1-10版本
- 自动将缓存文件夹
.svn加入.gitignore
安装
- 第一步,将本项目clone到本地并checkout到release分支,这么做的话你在想要更新到最新版本时可以随时获得更新。或者你直接下载zip包。假设你将项目放到了如
/Users/Jerry/Dev/git-for-SAE/这样的路径下。 - 第二步,将以下内容添加到
~/.bash_profile下
# Git for SAE
export GIT_FOR_SAE_ROOT=/Users/Jerry/Dev/git-for-SAE/ #此处就是你刚刚放置clone下来的项目路径
export PATH=$GIT_FOR_SAE_ROOT:$PATH
- 第三步,应用新的
.bash_profile
Terminal$ source ~/.bash_profile
如何使用
如果svn服务器是:https://svn.sinaapp.com/sjtubus/,那么下面的第一个参数请填写: sjtubus 如果通过上面那种方式安装好后,你可以进入你自己项目的根目录,接着这样使用:
#部署
#第一个参数是SAE上的项目名
#第二个数字表示版本号,SAE支持1-10
Terminal$ sae-push.sh sjtubus 1
#清空本地svn缓存
Terminal$ sae-clean.sh
成功案例
- 将交大校园巴士时刻表部署到SAE上
- Github: https://github.com/zry656565/SJTU-Bus
- SAE: http://sjtubus.sinaapp.com/
如何实现
简单来说就分为以上四步: 1. checkout SAE上的svn项目 2. 清除svn项目中的文件 3. 将git项目中的文件拷贝到svn项目中 4. 提交至SAE服务器
1.checkout SAE上的svn项目
首先,我在git项目的根目录下创建.svn文件夹用于存放SAE的svn项目,如果识别到已经创建了就跳过这个步骤,否则创建好.svn 后,执行 svn checkout $svn_repo_url (地址由参数生成)。
2.清除svn项目中的文件
接着为了防止之前的文件对git项目产生影响,我会将它们全部删除。反正既然采用这种管理手段,代码版本管理都在git项目中,所以应该不会造成不好的影响。但有一点需要注意的是根目录下的config.yaml文件是不能删除的,必须保留下来。需要执行的指令如下:
mv config.yaml ../config.yaml
rm -rf *
mv ../config.yaml config.yaml
svn st | awk '{print $2}' | xargs svn delete
svn commit -m "clean"
3.将git项目中的文件拷贝到svn项目中
接着就把git项目中的所有文件拷贝到.svn文件夹下的项目中,执行如下指令:
mv -f .svn ../.svn
cp -rf * "../.svn/$svn_dir_name"
mv -f ../.svn .svn
4.提交至SAE服务器
通过awk判断svn项目中所有文件的状态,对所有?状态的文件,将它们加入到svn的版本管理中,并提交。
svn st | awk '{if ( $1 == "?") { print $2 }}' | xargs svn add
svn commit -m "modify"
就这样大功告成啦,总共源码也只有60多行,有兴趣的朋友可以去看看源码,也可以fork我的项目并做一些贡献。
极速地将git项目部署到SAE的svn服务器上的更多相关文章
- 怎样将本地web数据库项目部署到腾讯云服务器上?
怎样将本地web数据库项目 部署到腾讯云服务器上? 1.本地计算机的工作: 1.1用eclipse或者myeclipse做好一个web项目,可以只做一个数据库的增删改查,本地部署到Tomcat服务器, ...
- 怎样将本地web项目部署到腾讯云服务器上?
怎样将本地web项目部署到腾讯云服务器上? 1.本地计算机的工作: (1).用eclipse新建一个web项目,然后在webcontent下新建一个index.html,然后在本地部署到Tomcat服 ...
- 把web项目部署到阿里云linux服务器上
最近弄了个试用阿里云服务器倒腾了半天终于部署好,分享一下. 1.登入阿里云打开你申请的是云服务器的实例: 点击重置密码---重置密码后重启服务器才能生效(一般需要重置密码.这里设置的密码是使用xhel ...
- xcode 把项目代码提交到远程SVN服务器
环境 xcode 7 Mac air xcode默认支持GIT源码管理工具,但现在想把代码提交到已有到SVN服务器上,步骤如下: 1,在safari中打开svn链接地址,信任证书,输入用户名密码 , ...
- 解决Linux下Svn检出Windows SVN服务器上项目SSL handshake failed: SSL error: Key usage violation in certificate has been detected.
在Linux上检出windows SVN服务器上项目时出现了SSL handshake failed: SSL error: Key usage violation in certificate ha ...
- windows+ant+git+tomcat中ant直接获取git项目部署注意点
最近项目搬迁到公司的"GitHub"上面原来的SVN的ant发布脚本要改下,于是百度ant获取git的方法太少了,windows平台上更是没有所以搞了两天,今天终于有点成果分享给大 ...
- 如何将项目部署到远程的Linux机器上的tomcat上
下面来练习一下如何将本地的一个项目部署到远程的Linux机器上去. 第一步:将要部署到Linux机器上的项目打成一个war包 war包有一个好处tomcat可以自动解压 第二步:将打好的war上传到L ...
- thinkphp项目部署在phpstudy里的nginx上
朋友的一个thinkphp做的项目,让我帮他部署一下的,LINUX服务器,用宝塔. 第一台服务器,装上宝塔,宝塔里装NGINX,PHP5.6,再建立网站,绑定域名,访问成功,一切正常! 昨天试着给另一 ...
- 将WeX5部署到自己的Tomcat服务器上
页面服务UIServer布署 WeX5自带页面服务UIServer的是标准Web应用,可以部署在Java Web应用服务器上.下面介绍如何在Tomcat和WebLogic中部署WeX5的UIServe ...
随机推荐
- android之Widget01
ExampleAppWidgetProvider.java package com.example.mars_2600_widget01; import android.appwidget.AppWi ...
- Gatling的进阶一
转载:http://www.51testing.com/html/10/26810-852966.html 首先 抄袭一个Gatling的介绍 Gatling是一款基于Scala 开发的高性能服务器性 ...
- ASPxGridView改变列颜色
protected void ASPxGridView1_HtmlDataCellPrepared(object sender, ASPxGridViewTableDataCellEventArgs ...
- JAVA错误:Cannot refer to a non-final variable * inside an inner class defined in a different method
在使用Java局部内部类或者内部类时,若该类调用了所在方法的局部变量,则该局部变量必须使用final关键字来修饰,否则将会出现编译错误“Cannot refer to a non-final vari ...
- python通过163邮箱发送邮件
from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText import smtplib i ...
- 【转】又一波你可能不知道的 Linux 命令行网络监控工具
对任何规模的业务来说,网络监控工具都是一个重要的功能.网络监控的目标可能千差万别.比如,监控活动的目标可以是保证长期的网络服务.安全保护.对性能进行排查.网络使用统计等.由于它的目标不同,网络监控 ...
- 对Native App与Web App的一些思考
前言 Native App:C/S架构,使用原生技术(Java/Objective-C/Swift)实现. Web App:B/S架构,使用浏览器技术来实现,广义上也包括phoneGap以及DP正在尝 ...
- HDFS副本机制&负载均衡&机架感知&访问方式&健壮性&删除恢复机制&HDFS缺点
副本机制 1.副本摆放策略 第一副本:放置在上传文件的DataNode上:如果是集群外提交,则随机挑选一台磁盘不太慢.CPU不太忙的节点上:第二副本:放置在于第一个副本不同的机架的节点上:第三副本:与 ...
- java 计算 文件 md5
public class MD5Check { /** * 默认的密码字符串组合,用来将字节转换成 16 进制表示的字符,apache校验下载的文件的正确性用的就是默认的这个组合 */ pro ...
- bootstrap风格的multiselect插件——类似邮箱收件人样式
在开发颗粒云邮箱的过程中,遇到了一个前端的问题,就是邮箱收件人的那个multiselect的input输入框.不仅能够多选,还要能够支持ajax搜索,把联系人搜索出来.就是类似下面的这个东西: 网上找 ...