svn的使用(google code被封不能用,但svn的原理还在)

前几天发布了openfetion的新协议版本,在Ubuntu中文论坛上发了个贴子宣传了一下,Ubuntu在中国果然不愧是拥有最状大的用户群,以前在其它的开源社区发的时候点击率都很低(当然也可能是大家觉得这个很没意思),不过这次Ubuntu论坛里面的网友们让我很感动,大家回馈了丰富的修改意思,也提交了各种现存的bug,还有的网友帮我打了deb包和rpm包,甚是感动,在这里先谢一下,由于bug太多,一个多星期的时候更新了两个版本,本来这个东西就是做出来玩玩的,看来还是有很多人喜欢的,所以我也决定用继续用我的休息时间把它做下去,之后考虑加上文件传输和非移动号码登陆这些有用的功能。

OK,扯远了,这篇文章是要总结一下svn的用法的,很多人发邮件问我关于飞信相关协议的问题,我也都给一一回复了,可也着实花费了不少的时间,后来就写了几篇相关的文章,仍然有人对一些细节不解,没办法,后来我也管不了那么多了,就把飞信给完全开源了,希望我的行为能对祖国的开源事业做一点小小的贡献吧。

突然觉得sourceforge和google code的svn代码管理很有用,以前在服务器上搭过cvs,后来嫌麻烦就一直没用,看了看svn的一些介绍,发现用起来着实简单方便了不少,于是就想用一用了,本来想在实验室服务器上搭一个的,后来想既然开源了就放到网上跟大家共享吧,gg去香港后在实验室上就很不稳定了,偶尔上得去偶尔上不去,于是想放到sf上去,结果sf的svn服务器教育网不加代理访问不了,抓包看了下svn的协议是TCP承载的TLS,只有http的代理,也不知道行不行,懒得研究就用gg了。

又扯了一大堆费话,总结一下svn的基本命令吧。

svn checkout :简写是svn co
example:

$svn checkout https://ofetion.googlecode.com/svn/trunk/ ofetion –username levin108

这个没什么好说的,跟cvs的checkout一个意思,从版本库中取出一个项目的拷贝,输入后会提示输入验证码,验证通过后会提示是否以保存在本地,保存的话以后就不用输入了。

svn commit :简写是svn ci
example:

$svn commit -m “modified some bugs”

将本地项目拷由的修改提交到版本库藏, 不加-m会的话提示一些乱七八糟的东西,没细看。

svn copy :简写svn cp

复制本地项目副本到版本库

svn move (mv), svn delete (rm,del),svn mkdir

故名思义吧,跟copy差不多,懒得说细地写了。这些操作所做的修改都会保存到本地缓存中,执行svn ci后才会同步到版本库。

svn import
example:

$svn import -m “initial import” https://ofetion.googlecode.com/svn/trunk/ ofetion –username levin108

递归地把一个目录下的文件提交到版本库,这个目录提交上去后它里面并没有版本库信息,我觉得应该在执行完这条命令后就应该在所有的目录中创建.svn文件夹,以保存版本库信息的。

所以就只能再把版本库中的项目checkout下来,这样的话各目录中就有了版本控制信息了,就可以进行版本控制操作了。

svn blame
example:

$svn blame Makefile.am

2 levin108 SUBDIRS = src include skin resource
2 levin108
2 levin108 EXTRA_DIST = LICENSE LICENSE.OpenSSL
2 levin108
2 levin108 install: install-recursive
2 levin108 @echo “———————————————————-”;
2 levin108 @echo “| |”;
2 levin108 @echo “| OpenFetion 1.2 by lwp([email protected]) |”;
2 levin108 @echo “| |”;
2 levin108 @echo “| OpenFetion a fetion client for linux based on GTK+2.0,|”;
2 levin108 @echo “| using Fetion Protocol Version 4. It supports most |”;
2 levin108 @echo “| useful functions of Mobile Fetion,more important. |”;
2 levin108 @echo “| It\`s small and fast,and is better in look. |”;
2 levin108 @echo “| More information at http://basiccoder.com/openfetion |”;
2 levin108 @echo “———————————————————-”;

显示指定文件(本地的或者远程版本库中的)作者和修订版本信息。 当然看到这个命令的输出的时候才发现原来版本控制软件真的很强大。

svn log 
example

$ svn log
————————————————————————
r11 | levin108 | 2010-04-06 19:31:11 +0800 | 1 行
4.5
————————————————————————
r10 | levin108 | 2010-04-06 18:49:41 +0800 | 1 行
test
————————————————————————
r9 | levin108 | 2010-04-06 18:49:18 +0800 | 1 行

显示提交日志信息。

svn status

打印工作拷贝文件和目录的状态,如A,D,U…详细如下:

A 添加
D 删除
U 更新
C 冲突
G 合并

svn list
example:

$ svn list https://ofetion.googlecode.com/svn/trunk/ –username levin108
AUTHORS
COPYING
ChangeLog
INSTALL
LICENSE

列出版本库目录的条目

svn update
example:

$svn update -r7

用版本号为7的版本库项目更新你的本地项目副本,不加-r就默认用最新的版本更新,这个命令很重要。

常用的命令差不多就这些了,其它不常用的我也记不住了,写一下以后自己忘了可以过来查

转载自basic coder

链接地址: http://basiccoder.com/svn-basic-introduction.html


更多svn教程可以查看:http://www.subversion.org.cn/svnbook/1.2/svn.tour.cycle.html


你可能感兴趣的:(SVN,Google,ubuntu,服务器,cvs,import)