SVN学习笔记二——客户端使用

SVN部署完成并成功配置完成后,就是使用的事情了,对于SVN,使用最多的往往是开发人员而不是运维人员,所以可能一些开发人员在这方面都比运维人员更熟悉,在我的工作经历中就曾有一个开发自行搭建SVN并且给开发和运维做培训的,强!

好了,上面主要是说其实对于SVN使用反而是开发比较在行,所以这里就简单的记录一下SVN客户端的使用吧。

Windows客户端的使用(TortoiseSVN)

1、安装TortoiseSVN,注意软件区分32位和64位,下载的时候请下载对应版本,然后安装只需下一步到完成即可。安装完成后,可能右键菜单中没有svn的命令,重启一下计算机就有了。

2、安装完成后,到windows中的任意路径下,新建一个文件夹,然后右键选择“SVN checkout”,然后在弹出的窗口中输入SVN server的相关信息,最后确定。

3、服务器要求输入用户凭据,这里输入之前创建的用户名密码,确认,如果防止后续重复要求输入用户凭据,可以选择记住凭据。

4、成功checkout后,出现以下窗口,返回到windows的对应路径下,可以看到文件夹上有一个绿色的对勾,这就表示已经成功从SVN server上checkout了文件,并且和SVN server保持一致状态。

5、好的,在idc文件夹下创建两个文件,文件创建之后,会有一个蓝色的问号标志。然后右键文件夹,选择“SVN commit”。

6、输入对上传内容的评论,以便其他人能对该代码有所了解,也方便自己过后查找,然后选择新增的文件,最后确认提交。

7、成功提交之后,可以看到以下窗口,版本从0变为1,SVN对每一次的增删修改等操作都会生成一个新的版本,以保证修改不会丢失,且可回溯。再回到windows资源管理器,此时文件都是绿色的对勾,表示所有文件都已提交到SVN。

Linux客户端的使用(主要是命令行)

估计svn在Linux上很少用到客户端,也就是运维人员可能用到,比如部署服务可以从SVN上取相关的配置或者shell脚本等,下面主要介绍一些命令:

[[email protected] hooks]# svn --help
usage: svn <subcommand> [options] [args]
Subversion command-line client, version 1.6.11.
Type ‘svn help <subcommand>‘ for help on a specific subcommand.
Type ‘svn --version‘ to see the program version and RA modules
  or ‘svn --version --quiet‘ to see just the version number.

Most subcommands take file and/or directory arguments, recursing
on the directories.  If no arguments are supplied to such a
command, it recurses on the current directory (inclusive) by default.

Available subcommands:
   add
   blame (praise, annotate, ann)
   cat
   changelist (cl)
   checkout (co)
   cleanup
   commit (ci)
   copy (cp)
   delete (del, remove, rm)
   diff (di)
   export
   help (?, h)
   import
   info
   list (ls)
   lock
   log
   merge
   mergeinfo
   mkdir
   move (mv, rename, ren)
   propdel (pdel, pd)
   propedit (pedit, pe)
   propget (pget, pg)
   proplist (plist, pl)
   propset (pset, ps)
   resolve
   resolved
   revert
   status (stat, st)
   switch (sw)
   unlock
   update (up)

Subversion is a tool for version control.
For additional information, see http://subversion.tigris.org/

这是svn的所有命令,如果查看更详细的命令可以svn command --help来查看,当然也可以到官网上查看帮助信息。

1)checkout命令

mkdir -p /opt/data/www
svn co svn://192.168.49.129/idc /opt/data/www/ --username=test01 --password=123456

#创建一个目录,并且svn库checkout到本地

2)查看文件命令

 svn ls svn://192.168.49.129/idc/ --username=test01 --password=123456
# 列出svn版本库中的文件
 svn list svn://192.168.49.129/idc/ --username=test01 --password=123456
# 与上一条命令等同
svn cat svn://192.168.49.129/idc/testf.txt --username=test01 --password=123456
# 查看svn版本库中某一文件内容

3)上传文件命令

svn add /opt/data/www/hello.txt  --username=test01 --password=123456
# 上传文件到svn中,注意:上传并非提交,这里只是添加到checkout本地的目录中,svn库中并没有

[[email protected] hooks]# svn ls svn://192.168.49.129/idc/ --username=test01 --password=123456
a.txt
access.log
b.txt
c.txt
check.sh
testf.txt
testfile.txt
xm01.txt
新建文本文档.txt

4)提交命令

svn ci -m "add hello world" /opt/data/www/
# 因为之前往本地目录中添加了hello.txt文件,但是并未提交到svn,所以执行该命令后,就将hello.txt提交到svn库中

[[email protected] hooks]# svn ls svn://192.168.49.129/idc/ --username=test01 --password=123456
a.txt
access.log
b.txt
c.txt
check.sh
hello.txt
testf.txt
testfile.txt
xm01.txt
新建文本文档.txt
[[email protected] hooks]# svn cat svn://192.168.49.129/idc/hello.txt --username=test01 --password=123456
Hello,World.

5)拷贝svn库命令

svn copy svn://192.168.49.129/idc svn://192.168.49.129/idc/branch -m "add a branch" --username=test01 --password=123456
# 拷贝svn的idc库到idc下的分支,相当于给idc库创建一个分支

6)删除命令

svn delete svn://192.168.49.129/idc/c.txt -m "test for delete" --username=test01 --password=123456
# 删除idc库中的c.txt文件,注意这里的删除是直接提交更改的,即本地目录中也将同步该操作

[[email protected] hooks]# ls /opt/data/www/
access.log  b.txt     hello.txt     testf.txt  新建文本文档.txt
a.txt       check.sh  testfile.txt  xm01.txt

好了,Linux客户端的操作基本上就是这些了,最后补上一张图,是对客户端操作的一个总结吧。

图片来源为:http://blog.chinaunix.net/uid-27004869-id-4112057.html

时间: 2024-10-17 12:14:56

SVN学习笔记二——客户端使用的相关文章

angular学习笔记(二十八)-$http(6)-使用ngResource模块构建RESTful架构

ngResource模块是angular专门为RESTful架构而设计的一个模块,它提供了'$resource'模块,$resource模块是基于$http的一个封装.下面来看看它的详细用法 1.引入angular-resource.min.js文件 2.在模块中依赖ngResourece,在服务中注入$resource var HttpREST = angular.module('HttpREST',['ngResource']); HttpREST.factory('cardResource

Android学习笔记二

17. 在ContentProvider中定义的getType()方法是定义URI的内容类型. 18. SQLiteDatabase类中的insert/delete/update/query方法其实也挺好用的,我在EquipmentProvider类中做了实现 19. Android专门有个单元测试项目(Android Test Project),在这个项目中,可以新建一个继承AndroidTestCase类的具体测试类来单元测试某个功能.我新建了一个AndroidTestProject项目,在

Mina框架的学习笔记——Android客户端的实现

Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络应用程序提供了非常便利的框架.当前发行的 MINA 版本支持基于 Java NIO 技术的 TCP/UDP 应用程序开发.串口通讯程序(只在最新的预览版中提供),MINA 所支持的功能也在进一步的扩展中.目前正在使用 MINA 的软件包括有:Apache Directory Project.Asyn

Ajax学习笔记(二)

二.prototype库详解 1.prototype库的使用 //导入下载好的prototype.js文件 <script type="text/javascript" src="prototype.js"></script> //在自己的js中直接使用Prototype对象 <script type="text/javascript"> document.writeln("Prototype库的版本

马哥学习笔记二十一——LVS DR模型

kernel parameter: arp_ignore: 定义接收到ARP请求时的响应级别: 0:只要本地配置的有相应地址,就给予响应: 1:仅在请求的目标地址配置请求到达的接口上的时候,才给予响应: arp_announce:定义将自己地址向外通告时的通告级别: 0:将本地任何接口上的任何地址向外通告: 1:试图仅向目标网络通告与其网络匹配的地址: 2:仅向与本地接口上地址匹配的网络进行通告: curl命令选项: --cacert <file> CA证书 (SSL) --capath &l

马哥学习笔记二十五——ISCSI协议,架构及其安装配置

ISCSI监听在tcp/3260端口 iSCSI Target:iscsi-target-utils 客户端认正方式: 1.基于IP 2.基于用户,CHAP tgtadm:命令行工具,模式化命令 --mode 常用模式:target,logicalunit,account target --op new.delete.show.update.bind.unbind logicalunit --op new.delete account --op new.delete.bind.unbind --

马哥学习笔记二十八——nginx反向代理,负载均衡,缓存,URL重写及读写分离

Nginx反向代理 Nginx通过proxy模块实现反向代理功能.在作为web反向代理服务器时,nginx负责接收客户请求,并能够根据URI.客户端参数或其它的处理逻辑将用户请求调度至上游服务器上(upstream server).nginx在实现反向代理功能时的最重要指令为proxy_pass,它能够将location定义的某URI代理至指定的上游服务器(组)上.如下面的示例中,location的/uri将被替换为上游服务器上的/newuri. location /uri { proxy_pa

angular学习笔记(二十八-附1)-$resource中的资源的方法

通过$resource获取到的资源,或者是通过$resource实例化的资源,资源本身就拥有了一些方法,比如$save,可以直接调用来保存该资源: 比如有一个$resource创建的服务: var service = angular.module('myRecipe.service',['ngResource']); service.factory('Recipe',['$resource',function($resource){ return $resource('/recipe/:id',

AJax 学习笔记二(onreadystatechange的作用)

AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了onreadyStateChange事件实现这一功能.这类似于回调函数的做法.onreadyStateChange事件可指定一个事件处理函数来处理XMLHttpRequest对象的执行结果,如: 复制代码 代码如下: ajaxObj=createAjaxObject(); var url="/MyTod