SVN全名Subversion,即版本控制系统
和Git不同,Git是分布式,而SVN是集中式
在commit没有冲突的时候,会合并
而存在冲突那么就需要先手动处理冲突再commit
源代码库:源代码统一存放的地方
获取:到源代码库获取一份源代码
提交:已经修改了源代码,想提交到源代码库
更新:更新同步和源代码库一样的源代码
安装SVN
dnf install subversion
创建版本库
cd /svn/demo
svnadmin create /svn/demo
其中conf/svnserve.conf文件是svn服务配置文件
anon-access = read auth-access = write password-db = passwd authz-db = authz realm = /svn/demo
passwd文件为账号密码文件
格式为:账号=密码,例如:abc = root
authz为权限控制文件
格式为:账号=rw(r读,w写),例如:abc=rw
启动版本库
svnserve -d -r /svn/demo –listen-port 3690
–listen-port是指定svn监听端口,默认是3690,-r是指定版本库
停止svn服务
killall svnserve
检出:从版本库中创建副本,在其修改,再提交到版本库中
例如:
svn checkout svn:xxx/demo –username=root
因为root有读写权限,因此将会在本地获取到demo的副本
更新:更新副本,将其同步到版本库最新版本,如果不是当前最新版本,当前本地的副本将无效
svn update
默认是更新到最新版本,也可以指定更新到哪个版本
svn update -r 2 demo
提交
svn commit -m “hello svn”
查看副本状态
svn status
如果出现?,则表示还没有加入版本控制中,出现A,表示已经加入版本控制中
添加文件到版本控制中
svn add demo
add只是将其添加到版本控制中,还没有提交到版本库中
提交到版本库中
svn commit -m “hello svn”
版本回退(当想放弃当前文件的修改,想恢复到之前的文件)
svn revert -R demo
将demo目录回退到修改之前的状态,不加-R则是文件回退
当然也可以回退到指定版本
svn revert -R 2:1 demo
从版本2回退到版本1
查看历史信息
查看指定版本之间的信息(版本作者,日期,路径)
svn log -r 2:1
查看文件的版本修改信息
svn log /demo/index.html
获取目录和显示指定条数的
svn log -l 2 -v
查看历史修改情况(比如本地修改,副本和版本库)
svn diff
默认会比较副本文件和缓存在.svn中的原始的改变
比较副本和指定版本
svn diff -r 2 index.html
版本和版本的比较
svn diff -r 1:2 index.html
查看过去版本的内容
svn cat -r 2 index.html
查看远程库的文件列表(不下载)
svn list svn:xxx/demo
分支
创建分支
切换分支
合并分支
标签