centos下安装使用SVN

SVN简介

svn功能实现

SVN 全名 Subversion,即版本控制系统,它是一个自由/开源的同时支持多种操作系统的版本控制系统。在 Subversion 管理下,文件和目录可以回到任意时刻的版本,以及比较任意两个时刻的版本变动。
我们称用来存放上传档案的地方就做 Repository。用中文来说,有点像是档案仓库的意思。不过,通常我们还是使用 Repository 这个名词。基本上,第一次我们需要有一个新增(add)档案的动作,将想要备份的档案放到 Repository 上面。日后,当您有任何修改时,都可以上传到 Repository 上面,上传已经存在且修改过的档案就叫做 commit,也就是提交修改给 SVN server 的意思。针对每次的 commit,SVN server 都会赋予他一个新的版本。同时,也会把每次上传的时间记录下来。日后,因为某些因素,如果您需要从 Repository 下载曾经提交的档案。您可以直接选择取得最新的版本,也可以取得任何一个之前的版本。如果忘记了版本,还是可以靠记忆尝试取得某个日期的版本。

svn优势

1.SVN Repository 可以是自己计算机上的一个目录,或者是随身碟(不建议这样用)。当然也可以是公司的服务器。
2.SVN 有很棒的版本控管机制。所有上传的版本都会帮您记录下来。日后您可以随时取得某一个时刻的版本。而且,也有版本分支及合并等好用的功能。
3.SVN 可以让不同的开发者存取同样的档案,并且利用 SVN Server 作为档案同步的机制。也就是说,您有档案更新时,无须将档案寄给您的开发成员。只需要告诉他新的版本已经在 SVN Server 上面,请他自己去 SVN Server 上面就可以取得最新版本。而且,SVN Server也可以做到当您上传新版本后,自动发信给相关的成员。
4.SVN 的存放档案方式是采用差异备份的方式。也就是说,他只会备份有不同的地方。所以很省硬盘空间。此外,他也可以针对所谓的非文字文件进行差异备份。

安装subversion软件

下载安装

[fanmaolin@Centeros ~]$ sudo yum install -y subversion
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Determining fastest mirrors
 * base: mirrors.btte.net
 * extras: mirror.bit.edu.cn
 * updates: mirrors.163.com
base                                                                                                         | 3.7 kB     00:00     
extras                                                                                                       | 3.4 kB     00:00     
updates                                                                                                      | 3.4 kB     00:00     
Resolving Dependencies
--> Running transaction check
---> Package subversion.x86_64 0:1.6.11-14.el6 will be updated
--> Processing Dependency: subversion = 1.6.11-14.el6 for package: subversion-javahl-1.6.11-14.el6.x86_64
---> Package subversion.x86_64 0:1.6.11-15.el6_7 will be an update
--> Running transaction check
---> Package subversion-javahl.x86_64 0:1.6.11-14.el6 will be updated
---> Package subversion-javahl.x86_64 0:1.6.11-15.el6_7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================
 Package                              Arch                      Version                               Repository               Size
====================================================================================================================================
Updating:
 subversion                           x86_64                    1.6.11-15.el6_7                       base                    2.3 M
Updating for dependencies:
 subversion-javahl                    x86_64                    1.6.11-15.el6_7                       base                    174 k

Transaction Summary
====================================================================================================================================
Upgrade       2 Package(s)

Total download size: 2.4 M
Downloading Packages:
(1/2): subversion-1.6.11-15.el6_7.x86_64.rpm                                                                 | 2.3 MB     00:00     
(2/2): subversion-javahl-1.6.11-15.el6_7.x86_64.rpm                                                          | 174 kB     00:00     
------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                               2.3 MB/s | 2.4 MB     00:01     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
  Updating   : subversion-1.6.11-15.el6_7.x86_64                                                                                1/4 
  Updating   : subversion-javahl-1.6.11-15.el6_7.x86_64                                                                         2/4 
  Cleanup    : subversion-javahl-1.6.11-14.el6.x86_64                                                                           3/4 
  Cleanup    : subversion-1.6.11-14.el6.x86_64                                                                                  4/4 
  Verifying  : subversion-1.6.11-15.el6_7.x86_64                                                                                1/4 
  Verifying  : subversion-javahl-1.6.11-15.el6_7.x86_64                                                                         2/4 
  Verifying  : subversion-1.6.11-14.el6.x86_64                                                                                  3/4 
  Verifying  : subversion-javahl-1.6.11-14.el6.x86_64                                                                           4/4 

Updated:
  subversion.x86_64 0:1.6.11-15.el6_7                                                                                               

Dependency Updated:
  subversion-javahl.x86_64 0:1.6.11-15.el6_7                                                                                        

Complete!

检查安装情况

[fanmaolin@Centeros ~]$ rpm -qa | grep ubversion
subversion-javahl-1.6.11-15.el6_7.x86_64
subversion-1.6.11-15.el6_7.x86_64

SVN的使用

在windows下一般用小乌龟软件(tortoisesvn)

Linux使用SVN

下载SVN服务器上的项目
svn checkout path (path是服务器的目录)
简写:svn co path
例如:
[fanmaolin@Centeros ~]$ svn co http://code.taobao.org/svn/tcode1/
A    tcode1/trunk
Checked out revision 1.#版本1

[fanmaolin@Centeros ~]$ ls
Desktop Documents dropbear-0.53.1 fl2440 Pictures src Templates tftp x.c 桌面
dir Downloads dropbear-0.53.1.tar.bz2 Music Public tcode1 test Videos zuoye

创建文件夹并上传到SVN
[fanmaolin@Centeros ~]$ cd tcode1/
[fanmaolin@Centeros tcode1]$ mkdir fanmaolin
[fanmaolin@Centeros tcode1]$ svn add fanmaolin/
A         fanmaolin
[fanmaolin@Centeros tcode1]$ svn ci -m "Add fanmaolin"#上传
Adding         fanmaolin

Committed revision 2.#版本2

在taobaocodeSVN上可以看到
这里写图片描述

查看文件或者目录状态

1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
2)svn status -v path(显示文件和子目录状态)
第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st

[fanmaolin@Centeros tcode1]$ svn st fanmaolin
linux下删除SVN上的文件
svn delete path -m "delete test fle"
简写:svn (del, remove, rm)
[fanmaolin@Centeros tcode1]$ svn del fanmaolin
D         fanmaolin
[fanmaolin@Centeros tcode1]$ svn ci -m "del fanamolin"
Deleting       fanmaolin

Committed revision 3.
查看日志

svn log path

查看文件详细信息
Svn info path
例:
[fanmaolin@Centeros tcode1]$ svn info fanamolin
Path: fanamolin
URL: http://code.taobao.org/svn/tcode1/fanamolin
Repository Root: http://code.taobao.org/svn/tcode1
Repository UUID: 3cfaaf96-6c34-41a0-b36f-983397b6bf68
Revision: 4
Node Kind: directory
Schedule: normal
Last Changed Author: fanmaolin
Last Changed Rev: 4
Last Changed Date: 2017-08-04 14:49:38 +0800 (Fri, 04 Aug 2017)
创建纳入版本控制下的新目录

svn mkdir: 创建纳入版本控制下的新目录。
用法: 1、mkdir PATH…
2、mkdir URL…
创建版本控制的目录。
1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增
调度,以待下一次的提交。
2、每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。

恢复本地修改

svn revert: 恢复原始未改变的工作副本文件 (恢复大部份的本地修改).revert:
用法: revert PATH…
注意: 本子命令不会存取网络,并且会解除冲突的状况.但是它不会恢复
被删除的目录

代码库URL变更

svn switch (sw): 更新工作副本至不同的URL.
用法: 1、switch URL [PATH]
2、switch –relocate FROM TO [PATH…]

1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将服务器上文件与本地文件合并.这是将工作副本对应到同一仓库中某个分支或者标记的方法.
2、改写工作副本的URL元数据,以反映单纯的URL上的改变.当仓库的根URL变动(比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用,这个命令更新工作副本与仓库的对应关系.

解决冲突

svn resolved: 移除工作副本的目录或文件的“冲突”状态.
用法: resolved PATH…
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交.

输出指定文件或URL的内容

svn cat 目标[@版本]…如果指定了版本,将从指定的版本开始查找.
svn cat -r PREV filename > filename (PREV 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)

参考链接:
http://www.php-oa.com/2008/03/12/svnminglingzailinuxxiadeshiyong.html
http://blog.csdn.net/lyx_win/article/details/52184845

总结:

之前都是在windows下使用软件来实现在SVN保存上传、下载代码,需要的时候然后再传输到Linux,现在又新学了一招。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值