具体可以查看Subversion中国社区 http://www.iusesvn.com/ 里面有详细的介绍哦
Subversion 是一个自由的/开源的版本控制器
Subversion管理下,目录和文件可以超越时空
Subversion 可以恢复到早期的版本 或者查看修改的历史
能够自动的合并 ,允许你和别人一起完成文档并跟踪修改历史
同时多个人修改一个文件 可以用samba ftp httpd 创建共享目录赋予RW权限
现在可以用SVN技术也可以用
svn跟yum源的访问模式有点类似
baseurl=fil:///rhel7
baseurl=http://192.168.4.254:/rhel7
现在可以用svn技术,就不会用ftp等技术,也可以访问yum源,这样也可以达到同样的效果
作web修改的时候,传到服务器就可以可以同步
企业中经常用代码 目前,绝大多数开源软件都使用SVN作为代码版本管理软件
访问方式可以用命令和图形
访问额途径可以有web 本地 svn
svn跟拷贝的从新覆盖文件有点类似
svn的优势
1.每个客户连接本库,并为每个客户建立个人副本
2.每个客户修改自己的个人副本
3.最终合并最新版本
在web1 下安装yum -y install subversion
创建仓库
[root@web1 ~]# mkdir /var/svn
[root@web1 ~]# svnadmin create /var/svn/project 这是一个仓库 project是仓库名 名字可以随意
[root@web1 ~]# ls /var/svn/project 只有创建仓库,才有能以下目录
conf db format hooks locks README.txt
### dh -sh 查看文件大少 ls -R ? ————-R:递归处理,将指定目录下的所有文件及子目录一并处理
本地初始化数据
[root@web1 ~]# cd /usr/lib/systemd/system
[root@web1 system]# svn import . file:///var/svn/project/ -m "Init Data"
注意空格,没有空格不能执行
修改三个配置文件
1.改写匿名用户的权限和有效用户的写入权限,
密码文件和acl访问控制列表文件
vim /var/svn/project/conf/svnserve.conf
注意修改文件时候,注意顶格来写入,不然就不会报错
19 anon-access = none
20 auth-access = write
27 password-db = passwd
34 authz-db = authz
2.密码文件
vim /var/svn/project/conf/passwd
[users]
# harry = harryssecret
# sally = sallyssecret
harry = 123
tom = 123
在文件最后写入用户和密码 “注意用户和密码在等号那里需要空格 user = harry password = 123”
3.acl 访问控制列表
vim /var/svn/project/conf/authz
[/] 定义acl的访问控制
harry = rw 用户对根目录有可读可写的权限
tom = rw
* = r 其他人只有只读权限
启动服务和检测端口状态
svnserve -d -r /var/svn/project/ 没有提示,需要手动检测端口号
也可以用这个来起服务 systemctl start svnserve 相当于没有-r 的效果,推荐第一个。
[root@web1 system]# ss -nultp | grep svnserve
tcp LISTEN 0 7 *:3690 *:* users:(("svnserve",pid=3437,fd=3))
这个Subversion 端口号是3690
二。客户端的访问测试
将服务器的代码下载到本地
cd /tmp 需要一个比较空的目录,这样下载比较好
[root@web2 tmp]# svn --username tom --password 123 co svn://192.168.2.100/ code
- 注意事项:客服端只要安装了Subversion就可以了。不用创库和导入文件
- //建立本地副本,从服务器192.168.2.100上co下载代码到本地code目录
- //用户名harry,密码pass
- code是目录,下载后会自己创建,名字可以任意修改
-----------------------------------------------------------------------
注意! 你的密码,对于认证域:
3d117f93-bfa1-4f94-b053-e21dd0d1b6ad
只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。
你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?yes
输入yes可以以后不用输入密码
svn co 下载
svn ci 上传
rm -rf *.service
svn update 更新
[root@web2 code]# svn info svn://192.168.2.100
查看仓库信息
[root@web2 code]# svn log svn://192.168.2.100 这两个问题有空再研究一下
查看版本仓库日志 “每一次修改都有追究功能”
添加代码操作
[root@web2 code]# echo test > test.sh
[root@web2 code]# svn ci -m "new file" 这个没有添加是不会有报错信息 提交失败 不能被svn管理
[root@web2 code]# svn add test.sh
A test.sh
[root@web2 code]# svn ci -m "new file"
正在增加 test.sh
传输文件数据.
提交后的版本为 3。
[root@web2 code]# svn mkdir subdir
A subdir
[root@web2 code]# svn ci -m "xxx"
正在增加 subdir
提交后的版本为 4。
[root@web2 code]# svn rm timers.target
D timers.target
[root@web2 code]# svn ci -m "mm"
正在删除 timers.target
提交后的版本为 5。
subversion 文件修改和查看
[root@web2 code]# vim umount.target
[root@web2 code]# svn diff 查看所有文件的差异,有一个列一个,有三个列三个
Index: umount.target
===================================================================
--- umount.target (版本 2)
+++ umount.target (工作副本)
@@ -10,3 +10,4 @@
Documentation=man:systemd.special(7)
DefaultDependencies=no
RefuseManualStart=yes
+tomtomtom
[root@web2 code]# svn diff umount.target 单单就看一个文件修改的内容
Index: umount.target
===================================================================
--- umount.target (版本 2)
+++ umount.target (工作副本)
@@ -10,3 +10,4 @@
Documentation=man:systemd.special(7)
DefaultDependencies=no
RefuseManualStart=yes
+tomtomtom
root@web2 ~]# svn cat svn://192.168.2.100/umount.target 查看服务器的内容,“可以另开一个页面,对比修改前和修改后的内容”服务器的内容是修改前的内容
git——————> github全世界最大的开源的数据库
svn基础
服务端
1.安装subversion yum -y install subversion
2.创建版本库 mkdir /var/svn svnadmin create /var/svn/仓库名 subversion 仓库管理工具,可以svnadmin help
3.导入项目代码 cd /usr/lib/systemd/system svn import . file:///var/svn/project/ -m "Init Data"
import 执行导入操作 -m 是设置注释性字符串
4.认证与授权
可以争强客服访问服务器的安全性 ,是通过版本库里的/conf/svnserve.conf的设置定义认证来授权的策略来实现控制访问
vim /var/svn/project/conf/svnserve.conf
- anon-access = none
- //19行,匿名无任何权限 也可以是 write read none
- auth-access = write
- //20行,有效账户可写 经过认证的客户可以有写的权限
- password-db = passwd
- //27行,密码文件 账户名称和密码文件,应该在conf目录下
- authz-db = authz
- //34行,ACL访问控制列表文件 基于路劲访问控制的文件名,(可以对文件名进行设置权限)这个实验还没有做过
5.svnserve 服务
vim /var/svn/project/conf/passwd 密码文件
cat /var/svn/project/conf/authz acl权限文件
客户端
1.访问方式——————有三种访问方式
1.1访问本地磁盘
1.2 svn访问方式——————这个用得比较多
- [root@web2 ~]# cd /tmp
- [root@web2 ~]# svn --username harry --password pass \
- co svn://192.168.2.100/ code
- //建立本地副本,从服务器192.168.2.100上co下载代码到本地code目录
- //用户名harry,密码pass
1.3 http访问方式
2.客户端命令行
3.windows客户端软件