【SVN版本管理】

第1章 SVN

希望大家可以一起学习,可以加笔者QQ86416192

1.1 SVN简介

SVN是Subversion的简称,是一个开放源代码的版本控制系统。

Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库

(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文

件的变动。这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史。

SVN是一个通用的软件系统,他不但可以用来管理程序源码,也可以管理任何类型

的文件,如文本、视频、图片等等。

1.2常见版本管理工具

SVN

集中式的版本控制系统,只有一个中央数据仓库,如果中央数据仓库挂了或者不可访问,所有的使用者无法使用SVN,无法进行提交或备份文件。

Git

分布式的版本控制系统,在每个使用者电脑上就有一个完整的数据仓库,没有网络依然可以使用Git。当然为了习惯及团队协作,会将本地数据同步到Git服务器或者GitHub等代码仓库。

1.3SVN的运行及访问模式

独立服务访问 ===>svn://svn.etiantian.org/sadoc 简单,高效

借助Apache等http服务===>http://svn.etiantian.org/sadoc

a、单独安装Apache+SVN(不要用,麻烦)

b、csvn(apache+svn)是一个单独的整合的软件,带web界面管理

本地直接访问 file:///application/svndata/sadoc

1.4SVN数据格式

SVN存储数据有2种方式:BDB(BerkleyDB,事务安全型)和FSFS(不需要数据库的存

储系统,一系列二进制文件)。一方面解决了许多问题 (例如,并行读写共享文件)

以及添加了许多新功能(例如运行时的事务特性。)。然而另一方面,数据存储由此

变得不透明。

由于BDB格式会出现锁住数据库的情况,所以现在使用FSFS方式更安全一点。在SVN

1.2版本以前用BDB,以后默认使用FSFS。

1.5SVN安装

环境要求

CentOS7.2

Selinux和防火墙关闭

安装SVN

rpm -qasubversion

yum -yinstall subversion

1. 环境检查

[[email protected] ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[[email protected] ~]# getenforce

Disabled

[[email protected] ~]# systemctl statusfirewalld.service

● firewalld.service - firewalld - dynamic firewalldaemon

Loaded:loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset:enabled)

Active:inactive (dead)

2.安装svn

[[email protected] ~]# rpm -qa subversion

subversion-1.7.14-10.el7.x86_64

3.初始化工作目录

# 建立SVN版本库根目录(svndata)及密码权限目录(svnpasswd)

mkdir -p /application/{svndata,svnpasswd}

# 初始化工作目录

svnadmin create/application/svndata/oldboyedu

4.配置文件

# 账号权限密码集中管理,就复制一次,以后创建的版本库只需要在已有配置文件修改即可,否则覆盖丢失以前的密码与权限。

cp/application/{svndata/oldboyedu/conf/{authz,passwd},svnpasswd}

chmod 600 /application/svnpasswd/*

ll -h /application/svnpasswd/*

cd /application/svndata/oldboyedu/conf/

sed -i.ori ‘8a anon-access =none\nauth-access = write\npassword-db = /application/svnpasswd/passwd\nauthz-db= /application/svnpasswd/authz‘ svnserve.conf

diff svnserve.conf{,.ori}

[[email protected] ~]# cp/application/{svndata/oldboyedu/conf/{authz,passwd},svnpasswd}

vnpasswd/passwd\nauthz-db =/application/svnpasswd/authz‘ svnserve.conf

diff svnserve.conf{,.ori}

[[email protected] ~]# chmod 600 /application/svnpasswd/*

[[email protected] ~]# ll -h /application/svnpasswd/*

-rw------- 1 root root 1.1K Jul 18 06:21/application/svnpasswd/authz

-rw------- 1 root root  309 Jul 18 06:21 /application/svnpasswd/passwd

[[email protected] ~]# cd/application/svndata/oldboyedu/conf/

[[email protected] conf]# sed -i.ori ‘8a anon-access =none\nauth-access = write\npassword-db =/application/svnpasswd/passwd\nauthz-db = /application/svnpasswd/authz‘svnserve.conf

[[email protected] conf]# diff svnserve.conf{,.ori}

9,12d8

< anon-access = none

< auth-access = write

< password-db = /application/svnpasswd/passwd

< authz-db = /application/svnpasswd/authz

5.添加账号密码

vim /application/svnpasswd/passwd

[users]

# harry = harryssecret

# sally = sallyssecret

root = 123456

oldboy = 654321

vim /application/svnpasswd/authz

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe =harry,sally,&joe

35team = root,oldboy

 

[oldboyedu:/]

root = rw

 

[oldboyedu:/oldboy]

oldboy = rw

6. 启动SVN

[[email protected] conf]# svnserve -r /application/svndata/ -d

[[email protected] conf]# ps -ef|grep svn

root      3128      1  0 09:16 ?        00:00:00 svnserve -r/application/svndata/ -d

root      3130   1413  0 09:16 pts/0    00:00:00 grep --color=auto svn

[[email protected] conf]# netstat -tunlp|grep svn

tcp       0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      3128/svnserve

7.SVNwindows客户端

安装TortoiseSVN-1.9.4.27285-x64-svn-1.9.4.msi

在安装LanguagePack_1.9.4.27285-x64-zh_CN.msi

在桌面新建一个文件夹svn_data,单击右键,点SVN更新,输入地址为你自己机器的IP

svn://10.0.0.201/oldboyedu

点确定,账号就是你设置的root密码是123456

在F盘或者随便哪里在建立一个新的文件夹test,单击右键,点击提交或者更新,输入的地址为

svn://10.0.0.201/oldboyedu/oldboy 输入的用户为 oldboy 密码是654321,然后在文件夹里面新建文本文档,写完保存,点击提交或者更新。

在桌面点svn_data文件夹,单击右键,点SVN更新,然后在输入root账号密码,就会发现test文件夹和他里面的文本文档也顺利的更新成功,说明的你windowsSVN成功运行。

新添加账号步骤

1. 添加账号密码到passwd

oldgirl = 111111

2. 添加目录权限到authz

[oldboyedu:/oldgirl]

oldgirl = rw

3. 使用最高权限用户(本例为root)在根目录创建一个oldgirl目录并提交到SVN服务器

发给员工的账号:

svn://10.0.0.201/oldboyedu/oldgirl

账号:oldgirl

密码:111111

8.Linux客户端

导入新建的文件夹

[[email protected] ~]# mkdir test

[[email protected] ~]# cd test/

[[email protected] test]# mkdir pc ios

[[email protected] test]# ls

ios  pc

[[email protected] test]# svn import svn://10.0.0.201/oldboyedu/ -m "initdir"  --username root --password123456 --no-auth-cache

正在增加       ios

正在增加       pc

提交后的版本为 3。

SVNcheckout 检出目录

[[email protected] test]# cd

[[email protected] ~]# mkdir oldboy_data

[[email protected] ~]# svn checkoutsvn://10.0.0.201/oldboyedu/oldboy /root/oldboy_data --username oldboy--password 654321 --no-auth-cache

A    oldboy_data/新建文本文档.txt

取出版本 3。

[[email protected] ~]# ls oldboy_data/

新建文本文档.txt

SVN 更新

[[email protected] ~]# svn update /root/oldboy_data--username oldboy --password 654321 --no-auth-cache

正在升级 ‘oldboy_data‘:

A    oldboy_data/111111111.txt

更新到版本 4。

SVN提交(记得-m 添加注释信息)

[[email protected] ~]# cd oldboy_data/

[[email protected] oldboy_data]# touch linux.txt

[[email protected] oldboy_data]# svn add linux.txt

A         linux.txt

[[email protected] oldboy_data]# svn commit /root/oldboy_data --username oldboy--password 654321 --no-auth-cache -m "haha"

正在增加       linux.txt

传输文件数据.

提交后的版本为 5。

SVN查看数据

[[email protected] oldboy_data]# svn listsvn://10.0.0.201/oldboyedu/oldboy --username oldboy --password 654321 --no-auth-cache

111111111.txt

linux.txt

新建文本文档.txt

查看帮助

[[email protected] oldboy_data]# svn help

用法: svn<subcommand> [options] [args]

Subversion 命令行客户端,版本 1.7.14。

[[email protected] oldboy_data]# svn help co

checkout(co): 从版本库签出工作副本。

使用: checkoutURL[@REV]... [PATH]

如果指定 REV,那么它确定了从 URL 首先查找的版本。

如果省略路径参数,则 URL 最末尾的目录名作为目标目录名。如果指定多个 URL,

则依次将其签出到 PATH 的子目录中,子目录名就是 URL 最末尾的目录名。

如果使用了 “--force” 选项,在工作副本中未版本控制的障碍路径,不会自动导

致签出失败。 如果障碍路径与版本库中的对应路径类型相同(文件或目录),它将成

为受版本控制的路径,但是内容不改变。它意味着障碍路径的孩子,如果也是障碍路

径,那么也会受版本控制。对于障碍路径中的文件,如果与版本库内的不同,将视为工

作副本发生本地修改。版本库中的所有属性都应用于障碍路径。

参见 “svn help update” 以获取报告执行动作的字符列表。

有效选项:

时间: 2024-11-09 05:02:25

【SVN版本管理】的相关文章

在linux服务器上装svn版本管理,自动部署代码到项目

在linux服务器上装svn版本管理,自动部署代码到项目 http://bbs.aliyun.com/read/9715.html?spm=5176.7114037.1996646101.1.W3zw3X&pos=1 http://v5sheji.com/archives/setupsvnonlinux.html 1.安装svn服务器端  yum install subversion 从镜像下载安装svn服务器端 中间会提示是否ok,输入y,确认 安装成功提示:.....complete! 依次

svn版本管理工具的安装及使用

一.实验环境VMware 10.RedHat5.6 1.服务器端:Redhat 5.6 subversion                             i386                      1.6.11-7.el5               subversion-devel                       i386                      1.6.11-7.el5               subversion-javahl     

企业SVN版本管理与代码上线方案

1.SVN服务实战 1) 什么是SVN(Subversion)? Svn(subversion)是近年来崛起的非常优秀的版本管理工具,与CVS管理工具一样,SVN是一个跨平台的开源的版本控制系统.Svn版本管理工具管理着随时间改变的各种数据.这些数据放置在一个中央资料档案库(repository)中,这个档案库很像一个普通的文件服务器或者FTP服务器,但是,与其他服务器不同的是,SVN会备份并记录每个文件每一次的修改更新变动.这样我们就可以把任意一个时间点的档案恢复到想要的某一个旧的版本,当然也

SVN版本管理与大型代码上线

SVN版本管理与大型代码上线 一.SVN简介 SVN是近年来崛起的非常优秀的版本管理工具,是一个开源的版本控制系统,开发的代码版本, 这些数据位置放置在一个中央资料档案库,很想一个普通的文件服务器或者FTP服务器 与其他服务器不用的是,SVN会备份并记录每个文件每一次的修改更新变动, 可以进行回滚操作,可以把任意一个时间点的档案恢复到想要的某一个旧的版本, 也可以浏览指定文件的更新历史记录. SVN是一个非常通用的软件系统,它常被用来管理程序源码,但是它也可以管理任何类型的文件, 如文本,视频,

Git/SVN 版本管理工具的对比

Mysql:修复表repair table name, 清空表truncate table name, 删除表drop table name 更改表名rename table name1 to name2, 备份表mysqldump 库名 表名 > 路径 字段分类group by name, 去重distinct , 字段排序order by desc/asc       ---- 小 Q -----------------------------------------------------

svn 版本管理与自动部分发布

作为团队开发项目时,会遇到项目的版本管理,测试部署与发布部署,下面是摘至他人的关于版本管理和自动部署的方案. svn自动部署的实现: 使用svn的hook功能 1.在版本库的hooks目录下面,有一些基于事件触发的执行脚本,比如post-commit, 去掉后缀.tmpl 2.编辑svn代码库服务器上文件: svn/test/hooks/post-commit #!/bin/sh REPOS="$1" REV="$2" export PATH="/usr/

Ubuntu下快速安装及使用SVN版本管理工具

1.介绍 Subversion是一个自由,开源的版本控制系统,这个版本库就像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况.这样就可以很方面恢复到以前的版本,并可以查看数据更改细节.目前,Subversion已成为主流的开源代码版本管理软件之一,简称SVN. 2.SVN相关命令了解 svn:命令行客户端 svnadmin:用来创建.调整或修复版本库的工具 svnserve:svn服务程序 svndumpfilter:过滤svn版本库转储数据流的工具 svnsync:svn数

svn 版本管理与自动部分发布(转)

作为团队开发项目时,会遇到项目的版本管理,测试部署与发布部署,下面是摘至他人的关于版本管理和自动部署的方案. svn自动部署的实现: 使用svn的hook功能 1.在版本库的hooks目录下面,有一些基于事件触发的执行脚本,比如post-commit, 去掉后缀.tmpl 2.编辑svn代码库服务器上文件: svn/test/hooks/post-commit #!/bin/sh REPOS="$1" REV="$2" export PATH="/usr/

Centos 配置svn 版本管理工具

主要包括: 1  安装svn 2  创建仓库 3 配置权限 4 配置防火墙iptables 5 windows 和服务器同步脚本 最容易出错的还是配置权限和防火墙,注意这里就好了 1 安装svn 2 创建仓库 3 修改上面的配置文件 4 修改防火墙 5 下面就是完整的示例: 在windows 上进行checkout 找个目录进行check,一定要先check额