安装SVN

笔记内容:安装svn
笔记日期:2018-01-11

  • 22.1 代码管理平台介绍
  • 22.2 安装svn
  • 22.3 客户端上使用svn(linux)
  • 22.4 客户端上使用svn(windows)

22.1 代码管理平台介绍

现在的开发工作都是由团队合作来完成开发,通常都是团队中的每个人或者每几个人完成一个模块的开发,最后再将模块拼凑起来,形成一个完整的项目,这就涉及到了协同开发。在各个模块的开发过程中,肯定会因为出现BUG或者需求更改,而进行代码的修改甚至重构的,代码每修改一次就相当于迭代了一次版本,一个完整的项目中通常会有多个模块,如果每个模块的开发过程中都会修改或重构代码,那么如果没有一个平台来管理、控制这些代码,肯定会造成代码混乱的局面。所以这时候就有了一个概念:版本控制,代码管理平台的主要功能就是进行版本的控制,以及记录代码修改、版本迭代的历史信息。

  • 版本控制,记录若干文件内容变化,以便将来查阅特定版本修订情况
  • 版本管理工具发展简史,cvs → svn → git 参考:http://luckypoem14.github.io/test/2012/04/24/scm-history/
  • svn全称subversion,是一个开源版本控制系统,始于2000年
  • git是linux创始人linus发起的,2005年发布,最初目的是更好管理linux内核代码
  • git和svn不同在于:svn是集中型的,有一个中心的服务端,而git是分散型的,git不需要依赖服务端就可以工作,即git是分布式的
  • 关于git和svn的比较大家 参考:http://blog.lishiming.net/?p=305
  • github是基于git的在线web页面代码托管平台,公开库是免费的,而私有库则是付费服务
  • gitlab可以认为是一个开源的github,两者没有直接关系

22.2 安装svn

安装命令:

yum install -y subversion

创建版本库:

[[email protected] ~]# mkdir -p /data/svnroot/myproject  # 创建一个目录来存放工程的版本库
[[email protected] ~]# svnadmin create /data/svnroot/myproject  # 创建工程的版本库
[[email protected] ~]# cd !$/conf  # conf是配置文件所在的目录
cd /data/svnroot/myproject/conf
[[email protected] /data/svnroot/myproject/conf]# ls
authz  passwd  svnserve.conf  # authz为权限配置文件,passwd为密码文件,svnserve.conf为仓库配置文件
[[email protected] /data/svnroot/myproject/conf]# vim authz  # 加入以下内容
[groups] # 用户组
admins = user,user1 # 定义用户,可以定义多个 

[/] # 根目录
@admins = rw # 设置该用户组的权限是可读可写
*= r  # 设置所有的用户都可以读

# 可以指定对某个项目进行设置权限
#[myproject:/]
#user1 = rw  # 设置user1拥有可读可写权限
[[email protected] /data/svnroot/myproject/conf]# vim passwd  # 加入以下内容
[users]
user = user_^^^123
user1 = user1-***123
[[email protected] /data/svnroot/myproject/conf]# vim svnserve.conf  # 加入以下内容
[general]
anon-access = none  # 定义匿名用户的权限
auth-access = write  # 定义用户的权限
password-db = passwd  # 定义用户的密码文件
authz-db = authz  # 定义用户的权限文件
realm = /data/svnroot/myproject  # 定义对哪个项目生效

完成以上配置后,启动svn服务:

# -d指定后台启动,-r指定库所在的目录
[[email protected] /data/svnroot/myproject/conf]# svnserve -d -r /data/svnroot
[[email protected] /data/svnroot/myproject/conf]# ps aux |grep svn
root       4183  0.0  0.0 162184   656 ?        Ss   23:22   0:00 svnserve -d -r /data/svnroot
root       4185  0.0  0.0 112668   972 pts/0    S+   23:22   0:00 grep --color=auto svn
[[email protected] /data/svnroot/myproject/conf]# netstat -lntp |grep svn
tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      4183/svnserve
[[email protected] /data/svnroot/myproject/conf]#

22.3 客户端上使用svn(linux)

我这里使用两台机器作为测试的客户端。

客户端也需要安装subversion:

yum install -y subversion

在客户端A中检出服务端的myproject版本库:

[[email protected] ~]# cd /home/
[[email protected] /home]# mkdir svntest
[[email protected] /home]# cd svntest/
[[email protected] /home/svntest]# svn checkout svn://192.168.77.130/myproject --username=user
认证领域: <svn://192.168.77.130:3690> /data/svnroot/myproject
“user”的密码: # 输入密码

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

   <svn://192.168.77.130:3690> /data/svnroot/myproject

只能明文保存在磁盘上!  如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?yes
取出版本 0。
[[email protected] /home/svntest]# ls
myproject
[[email protected] /home/svntest]# ll -a myproject/
总用量 0
drwxr-xr-x 3 root root 17 1月  12 00:05 .
drwxr-xr-x 3 root root 22 1月  12 00:05 ..
drwxr-xr-x 4 root root 70 1月  12 00:05 .svn  # svn配置文件
[[email protected] /home/svntest]#

在客户端B中也是如上操作,就不赘述了。

在客户端B上随便拷贝个文件到检出来的版本库里,然后上传到服务端:

[[email protected] /home/myproject]# cp /etc/fstab .
[[email protected] /home/myproject]# ls
fstab
[[email protected] /home/myproject]# svn add ./fstab  # 添加到版本控制中心
A         fstab
[[email protected] /home/myproject]# svn commit -m "add fstab"  # 把文件上传到服务器
正在增加       fstab
传输文件数据.
提交后的版本为 1。
[[email protected] /home/myproject]#

在客户端A上同步服务端的文件,这时就会同步刚刚客户端B上传的文件:

[[email protected] /home/svntest]# cd myproject/
[[email protected] /home/svntest/myproject]# ls
[[email protected] /home/svntest/myproject]# svn up  # 这个命令把当前目录下的文件都更新到最新版
正在升级 ‘.‘:
A    fstab
更新到版本 1。
[[email protected] /home/svntest/myproject]# ls
fstab
[[email protected] /home/svntest/myproject]#

删除本地文件:

[[email protected] /home/svntest/myproject]# svn delete fstab
D         fstab
[[email protected] /home/svntest/myproject]#

删除服务端的文件:

[[email protected] /home/svntest/myproject]# svn commit -m "delete fstap"
正在删除       fstab

提交后的版本为 2。
[[email protected] /home/svntest/myproject]#

查看变更日志:

[[email protected] /home/svntest/myproject]# svn log
------------------------------------------------------------------------
r1 | user | 2018-01-12 00:27:06 +0800 (五, 2018-01-12) | 1 行

add fstab
------------------------------------------------------------------------
[[email protected] /home/svntest/myproject]#

22.4 客户端上使用svn(windows)

在官网上下载TortoiseSVN 并安装,官网地址:

https://tortoisesvn.net/index.zh.html

由于我已经安装过了,而且windows上的操作也比较简单,我这里就不演示了,以下提供了安装的教程,以及我之前在windows上安装服务端和客户端的记录文章。

TortoiseSVN简明教程:

http://www.jianshu.com/p/6b3b7b915332

在windows上安装SVN服务端以及TortoiseSVN:

http://blog.51cto.com/zero01/1976727


扩展内容

svn 多仓库管理
http://elim.iteye.com/blog/1171108

svn+ssh
http://www.linuxfly.org/post/450/

svn清除保存的用户名和密码
http://holy2010.blog.51cto.com/1086044/645944

svn命令详解
http://blog.sina.com.cn/s/blog_963453200101eiuq.html

原文地址:http://blog.51cto.com/zero01/2059913

时间: 2024-10-10 04:33:28

安装SVN的相关文章

myeclipse安装svn插件的多种方式

开发者服务评测征文 十万现金悬赏大神 方法一:在线安装 1.打开HELP->MyEclipse Configuration Center.切换到SoftWare标签页. 2.点击Add Site 打开对话框,在对话框Name输入Svn,URL中输入:http://subclipse.tigris.org/update_1.6.x3.在左边栏中找到Personal Site中找到SVN展开.将Core SVNKit Library和Optional JNALibrary添加(右键Add to Pr

Eclipse下安装SVN插件以及连接SVN服务并发布项目

Eclipse安装SVN插件 Help->Eclipse MarketPlace 查找并安装Subclipse插件 按默认步骤完成SVNEclipse插件的安装(安装完成后需要重启Eclipse后生效). 将项目从Eclipse发布到SVN服务器 新建一个Java项目: 在项目上右键,找到Team->ShareProject 选择SVN 创建一个新的资源库位置: 设置SVN地址,格式: svn://ip地址 设置SVN资源库的文件夹名称: 添加注释后选择完成: 填写SVN服务的用户名和密码 点

Eclipse安装svn插件的几种方式 转帖....

Eclipse安装svn插件的几种方式 1.在线安装: (1).点击 Help --> Install New Software... (2).在弹出的窗口中点击add按钮,输入Name(任意)和Location(插件的URL),点击OK (3).勾选出现的插件内容,一步步安装即可. 注:目前在线安装svn的版本只有1.6.x和1.8.x地址分别是:http://subclipse.tigris.org/update_1.6.xhttp://subclipse.tigris.org/update

linux安装SVN服务器

1          安装SVN 官网下载:http://subversion.apache.org/packages.html SVN客户端:TortoiseSVN,官网下载:http://tortoisesvn.net/downloads.html # yum install subversion 1.       新建一个目录用于存储SVN所有文件 # mkdir /svn 1)创建svn用户 #groupadd svn #useradd -g sky user//是将user加入到sky

源码安装svn

源码安装svn先卸载低版本wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.bz2wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.bz2wget http://mirrors.hust.edu.cn/apache//apr/apr-iconv-1.2.1.tar.bz2wget http://apache.fayea.com/subversion/sub

centos 安装 svn

在工作中,为了提高工作效率,我们都会用版本控制软件来对项目经行管理,比如说svn.git等等.接下来以svbversion为例来谈谈CentOS中安装svn和部署项目的过程 一.安装svn服务端,并使用匿名用户访问和管理svn项目1.首先安装svn服务端 yum install subversion -y 2.设置版本库的目录,默认监听端口号3690svnserve -d -r /usr/svndata 3.创建svn项目svnadmin create /usr/svndata/gztest 4

myeclipse 2014 专业版 安装 svn插件

本文地址: 本文作者:sushengmiyan 团队合作的项目肯定少不了版本控制,那么现在就看看myeclispe中是如何使用的吧. 开发环境:myeclipse 2014   java 8 tomcate 8 试了网上说的几种方法,都没有成功,最终自己还是摸索着弄出来了,这里先记录一下,后期自己再配置的时候好获取路径啥的. 打开myeclipse的help---install from site 点击add弹出对话框 在输入框中输入对应内容 http://subclipse.tigris.or

MyEclipse2014 安装SVN插件

Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + - + Ak. Input The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30), k (k ≤ 109) and m (m < 104). Then

linux下安装svn服务

环境centos6.8 64位: 1.安装svn yum install subversion yum install mod_dav_svn 2.创建svn仓库 mkdie /home/svn 3.在svn仓库下创建版本库 svnadmin create /home/svn/xyz (版本库名:xyz) 4.修改svnserver.conf vi xyz/conf/svnseve.conf 5.编辑passwd添加用户 6.修改auth授权设置

Mac下eclipse安装SVN插件

最近入手一款mac pro,安装svn小记. eclipse中最常使用的SVN插件是subclipse,先到subclipse官网:http://subclipse.tigris.org下载该插件. 如上图,点击“Download and Install”转到下载页面. 选择上图中要安装的版本,比如我这里选择:Links for 1.8.x Release: 接下来,有两种方式来安装subclipse,二选一即可. 一. 1.复制Eclipse update site URL:后边的链接: ht