centos中安装并使用svn

来源:互联网 发布:js下载 编辑:程序博客网 时间:2024/05/29 03:08

———————————————————————————————————————

主机操作系统:Centos 6.7

安装配置:SVN
邮箱:leiyuxing205@gmail.com

———————————————————————————————————————


一.SVN简介:

SVN 全名 Subversion,即版本控制系统,它是一个自由/开源的同时支持多种操作系统的版本控制系统。在 Subversion 管理下,文件和目录可以回到任意时刻的版本,以及比较任意两个时刻的版本变动,这点不止在协同开发中,即使在个人开发过程中,这种特性都是非常非常有用的。大多数程序员都会有过这种经历,对代码进行很多的修改,发现修改的想法根本是错误的,而这时我已经修改了多个文件,要想回退是非常纠结的事情,而现在可以使用 SVN 轻松做到这一点。

我们称用来存放上传档案的地方就做 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软件

[leiyuxing@centos6 ~]$sudo yum install -y subversion #下载并安装subversion

[leiyuxing@centos6 ~]$ rpm -qa | grep ubversion #查看是否安装上

subversion-javahl-1.6.11-15.el6_7.i686

subversion-1.6.11-15.el6_7.i686

四.linux下svn的使用

1.下载SVN服务器上的项目

PS:这里以博主的TaoCode为例

将文件checkout到本地目录

svn checkout path (path是服务器的目录)

简写:svn co path

例如:

svn: 解析参数出错

[leiyuxing@centos6 ~]$ svn co http://code.taobao.org/svn/task_iot/

认证领域: <http://code.taobao.org:80> code.taobao.org

“leiyuxing”的密码:

 

-----------------------------------------------------------------------

注意!  你的密码,对于认证域:

 

   <http://code.taobao.org:80> code.taobao.org

 

只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion

可以保存加密后的密码。请参阅文档以获得详细信息。

 

你可以通过在“/home/leiyuxing/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,

来避免再次出现此警告。

-----------------------------------------------------------------------

保存未加密的密码(yes/no)?yes

A    task_iot/Task_C2

A    task_iot/Task_C2/Task.txt

........

取出版本 79。

查看是否下载成功:

 

[leiyuxing@centos6 ~]$ cd task_iot/

[leiyuxing@centos6 task_iot]$ ls

ppt讲义  Readme.txt  Task_C1  Task_C2  Task_L3  Task_Linklist

2.在虚拟机得目录下将创建的文件夹移动到下载下来的SVN目录下

[leiyuxing@centos6 task_iot]$ mkdir leiyuxing

[leiyuxing@centos6 task_iot]$ svn add leiyuxing

A         leiyuxing

[leiyuxing@centos6 task_iot]$ svn ci -m"Add leiyuxing"

增加           leiyuxing

提交后的版本为 80。

 

可以进入SVN查看是否添加上:

 

3.查看文件或者目录状态

  1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
   【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
  2)svn status -v path(显示文件和子目录状态)
   第一列保持相同,第二列显示工作版本号,第三和第四列显示最后一次修改的版本号和修改人。

   注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。
简写:svn st

4.删除文件

svn delete path -m "delete test fle"

简写:svn (del, remove, rm)

例如:

[leiyuxing@centos6 task_iot]$ svn delete leiyuxing

D         leiyuxing

[leiyuxing@centos6 task_iot]$ svn ci -m"delete leiyuxing"

删除           leiyuxing

 

提交后的版本为 81。

5.查看日志

svn log path

6.查看文件详细信息

Svn info path

例如:

[leiyuxing@centos6 task_iot]$ svn info ppt讲义/

路径: ppt讲义

URL: http://code.taobao.org/svn/task_iot/ppt%E8%AE%B2%E4%B9%89

版本库根: http://code.taobao.org/svn/task_iot

版本库 UUID: 4b78d7ed-ed9a-4803-a405-b7941b9f9149

版本: 79

节点种类: 目录

调度: 正常

最后修改的作者: lingyun_emb

最后修改的版本: 76

最后修改的时间: 2016-04-11 10:43:11 +0800 (一, 2016-04-11)

7.创建纳入版本控制下的新目录

svn mkdir: 创建纳入版本控制下的新目录。
用法: 1、mkdir PATH...
         2、mkdir URL...

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

 

8.恢复本地修改

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

9.代码库URL变更

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

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

10.解决冲突

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

11.输出指定文件或URL的内容。

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

参考链接:[url]http://www.php-oa.com/2008/03/12/svnminglingzailinuxxiadeshiyong.html[/url]

0 0
原创粉丝点击