centos中安装并使用svn
2016-08-11 17:38
281 查看
[b]主机操作系统:Centos 6.7
[/b]
安装配置: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 是上一版本,也可以写具体版本号,这样输出结果是可以提交的)
参考链接:http://www.php-oa.com/2008/03/12/svnminglingzailinuxxiadeshiyong.html
相关文章推荐
- CentOS下使用yum安装配置和使用svn
- CentOS 6.3上SVN安装过程及使用手册
- CentOS中安装subversion,并使用svn+ssh访问 ;Linux下采用RSA key的方式登录服务器
- CentOS6.9 SVN的安装及使用
- CentOS或Linux下使用yum安装配置和使用svn
- Centos 6.5上Apache + PAM + SVN服务安装配置(使用本地系统用户认证)
- 阿里云使用笔记-SVN安装与部署-centos7
- centos 7 SVN服务器端安装与使用
- 最详细的SVN安装使用手册-Centos6.4系统运行通过
- centos7.2 SVN版本控制器服务安装与使用
- CentOS 6.3上SVN安装过程及使用手册
- Centos6.5安装subversion使用svn版本库
- 【原创】centos下使用yum安装svn
- centos安装使用svn
- centos下svn的安装及使用
- CentOS 6.3上SVN安装过程及使用手册
- CentOS下使用yum安装配置和使用svn
- centos 6.5 svn安装和使用
- centos下安装使用SVN
- 分布式架构学习之持续集成:009--SVN版本管理系统的安装和使用(CentOS+Subversion+Apache+Jsvnadmin)