linux svn客户端入门心得(转)
以前用svn也紧紧是在终端上svn checkout ooxx下载源码然后本地编译(比如eva)。那些只需要人家找网络上告诉你URL地址或者直接告诉你完整版的svn checkout命令,确认机器能上网,然后将svn checkout ooxx命令复制到终端上按回车开始下载就万事大吉。
搭环境那哥们测试客户端的时候也只是找windows下用svn客户端工具TortoiseSVN测试能正常使用就成,至于像我等身为linux下的少数派用户,咨询他如何通过终端命令读写svn,哥们丢下一句话就落荒而逃:“linux我不熟,你自己找资料慢慢试吧!”。
才一开始用问题就来 了,以前用svn找网络上下东西都没用用户名和密码,直接svn checkout ooxx就搞定了。弄了半天才明白原来输入svn checkout ooxx命令后,如果有用户名和密码会在命令输入后提示你输入。要想在checkout命令里加上选项 --username ooxx --password xxoo 其中ooxx和xxoo就是你的用户名和密码了。只要第一次输入用户名和密码正确,后面就不需要再次输入。
建好svn服务器后第一件事情当然是把本机上打代码放到svn服务器上,假设我要把当前目录下打mgqwcode文件上传到svn服务器,运行命令$ svn import -m "New import" mgqwcode http://192.168.1.88:8080/svn/mgqwcode 不需要mkdir新建目录,svn import会递归的为你创建目录。如果正常的话,输出如下:
增加 mgqwcode/abc.h ………………………………(省略n个文件) 提交后的版本为 2。 |
这样mgqwcode目录就全部上传到svn服务器上面去了,在导入数据之后,你会发现原先的目录树并没有纳入版本控制,为了开始工作,你还是要运行svn checkout得到一个干净的目录树工作拷贝。如果直接在当前目录下运行命令$ svn checkout http://192.168.1.88:8080/svn/mgqwcode 会报错:
svn: 无法增加文件“mgqwcode/myqueue.h”: 同名对象已存在
原因就是当前目录下的mgqwcode目录并没用导入到svn版本控制中去,解决办法很简单,将mgqwcode改名成mgqwcode_backup,然后再次运行命令$ svn checkout http://192.168.1.88:8080/svn/mgqwcode 正常输出类似import:
A mgqwcode/abc.h |
这样mgqwcode目录就已经纳入版本控制了,以后代码改动了,要提交版本只需要在svn的副本目录中输入命令$ svn commit 即可,如果不在svn副本目录运行命令则会报错如下:
$ svn commit |
好了,linux下svn客户端基本使用就说到这里了,要想进一步使用svn的各种先进功能自己去网上查资料,百度/狗狗一抓一把,下面提供几个比较好打网址:
这个是svn中文官方网站
http://www.subversion.org.cn/
这个是svn使用说明书
http://www.subversion.org.cn/svnbook/1.4/index.html
最后来个简单点的,网络上广为流传的svn在linux下的使用(svn命令)
http://hi.baidu.com/mgqw/blog/item/a3dee127e8ebf605908f9d6b.html
注意:当checkout时,报错网络以外中断,可以将checkout后面的svn://改成http://