git svn 实战

1, 用git从svn里clone最后几个版本
一般情况下git svn clone这个操作会从第一个版本开始同步,如果版本号已经到了好几万(或更高?),这个操作会相当的费时。
当时还想着能不能hack一下git-svn脚本,其实后来看看文档,clone操作可以使用参数-r$REVNUMBER:HEAD检出指定版本后的代码,因此,更好的步骤应该是这样:
a ,  减产svn 版本号
svn info http://your-svn, 并记录最后的版本号,假设是260
假设要检出最后10个版本,做个简单的减法: 260 – 10 = 250
b,开始clone操作了
git svn clone -r250:HEAD --prefix=svn/ http://your-svn
按这个办法,clone的时间的确是减少了许多。

2,   git svn实战
我之前写了几个wordpress插件,比如inline-javascript, code-prettify。这些插件都托管在wordpress.org提供的svn服务器上,但是我实在太喜欢在git下活动了,因此动了点心思,想把插件代码传到github上,开发完之后利用git-svn传到wordpress的svn服务上。照着这个思路,捋起袖子就开干了。

2.1, 用git-svn抓取插件代码
wordpress的插件svn库大且缓慢,如果直接用git-svn去clone代码,一定会慢死,按照"http://hi.baidu.com/bamboolsu/blog/item/a52666acb54989114a36d6f7.html",用git从大型svn快速clone代码。

以code-prettify插件为例,首先需要读取这个插件创建时的版本号
svn log http://svn.wp-plugins.org/code-prettify|tail -4|head -1
得到了如下信息,获得一个版本号 318479
r318479 | plugin-master | 2010-12-03 20:12:29 +0800 (五, 03 12 2010) | 1 line


开始clone代码
git svn clone -s --prefix=svn/ -r318479:HEAD http://svn.wp-plugins.org/code-prettify


2.2, 设置git仓库
首先把代码传了一份到github: https://github.com/volca/code-prettify

然后操作本地git仓库

git branch -m svn
git remote add origin git@github.com:volca/code-prettify.git
git checkout master
本地svn分支对应svn的远程仓库,本地master分支对应github的远程仓库

2.3, Happy time
现在可以按照平常的习惯在git下更改代码,然后用git push到github上。

如果需要更新代码到svn上,按这个流程操作就可以了:
git checkout svn
git merge master
git svn dcommit

如果需要发布wordpress插件的新版本,这个在svn里就是一个打tag的过程,用git-svn操作非常简单,下面的例子表示发布code-prettify插件的0.3版本:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值