【SVN版本管理】

第1章 SVN

但愿你们能够一块儿学习,能够加笔者QQ86416192python

1.1 SVN简介

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

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

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

件的变更。这样就能够把档案恢复到旧的版本,或是浏览文件的变更历史。数据库

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

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

 

 

1.2常见版本管理工具

SVNwindows

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

Git服务器

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

 

 

1.3SVN的运行及访问模式

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

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

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

bcsvn(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. 环境检查

[root@oldboyedu ~]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[root@oldboyedu ~]# getenforce

Disabled

[root@oldboyedu ~]# 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

[root@oldboyedu ~]# 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}

 

 

 

[root@python ~]# cp/application/{svndata/oldboyedu/conf/{authz,passwd},svnpasswd}

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

diff svnserve.conf{,.ori}

[root@python ~]# chmod 600 /application/svnpasswd/*

[root@python ~]# 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

[root@python ~]# cd/application/svndata/oldboyedu/conf/

[root@python conf]# sed -i.ori '8a anon-access =none\nauth-access = write\npassword-db =/application/svnpasswd/passwd\nauthz-db = /application/svnpasswd/authz'svnserve.conf

[root@python 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

[root@oldboyedu conf]# svnserve -r /application/svndata/ -d

[root@oldboyedu 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

[root@oldboyedu 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客户端

 

导入新建的文件夹

   [root@oldboyedu ~]# mkdir test

   [root@oldboyedu ~]# cd test/

   [root@oldboyedu test]# mkdir pc ios

   [root@oldboyedu test]# ls

   ios  pc

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

    正在增长       ios

    正在增长       pc

 

    提交后的版本为 3

 

 

SVNcheckout 检出目录

[root@oldboyedu test]# cd

[root@oldboyedu ~]# mkdir oldboy_data

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

   A    oldboy_data/新建文本文档.txt

    取出版本 3

[root@oldboyedu ~]# ls oldboy_data/

    新建文本文档.txt

 

SVN 更新

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

    正在升级 'oldboy_data':

   A    oldboy_data/111111111.txt

    更新到版本 4

 

 

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

   [root@oldboyedu ~]# cd oldboy_data/

   [root@oldboyedu oldboy_data]# touch linux.txt

   [root@oldboyedu oldboy_data]# svn add linux.txt

   A         linux.txt

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

    正在增长       linux.txt

    传输文件数据.

    提交后的版本为 5

   

   

SVN查看数据

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

   111111111.txt

   linux.txt

    新建文本文档.txt

 

   

查看帮助

[root@oldboyedu oldboy_data]# svn help

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

Subversion 命令行客户端,版本 1.7.14

 

 

[root@oldboyedu oldboy_data]# svn help co

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

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

 

  若是指定 REV,那么它肯定了从 URL 首先查找的版本。

 

  若是省略路径参数,则 URL 最末尾的目录名做为目标目录名。若是指定多个 URL

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

 

  若是使用了 --force 选项,在工做副本中未版本控制的障碍路径,不会自动导

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

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

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

  做副本发生本地修改。版本库中的全部属性都应用于障碍路径。

 

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

 

有效选项

相关文章
相关标签/搜索