SVN(subversion)详解
SVN是近年来非常优秀的版本管理工具,与CSV管理工具一样,SVN是一个跨平台开元版本控制系统,但是SVN与众不同的是,SVN会备份并记录每个文件每一次的修改更新变动。这样我们可以把任意一个时间点档案恢复到想要的某一个旧版本,当然也可以直接浏览指定文件的更新历史记录。
- SVN服务搭建
# yum install subversion -y
# svnserve --version //查看版本
- 创建仓库目录repo
# mkdir -p /opt/svn/repo/ //创建目录
# svnadmin create /opt/svn/repo/ //创建新仓库
# ls !$ //查看上一次使用的路径
- 调整SVN参数
# vim /opt/svn/repo/conf/svnserve.conf //注意:下行的配置项前不能有空格与注释符
anon-access = none //匿名用户没有任何权限
auth-access = write //认证用户具有写权限
password-db = /opt/svn/repo/conf/passwd //用户密码文件
authz-db = /opt/svn/repo/conf/authz //用户信息文件
- **启动和关闭SVN服务
# svnserve -d -r /opt/svn/repo/ //关闭通过kill pid 或者pkill svnserve
# netstat -tunlp | grep svnserve
- 为PHP程序员创建账户
# vim /opt/svn/repo/conf/passwd //创建账户密码
[users]
zhangsan = abc123
sysadmin = abc123
# vim /opt/svn/repo/conf/authz //创建权限文件
[/] //根目录 下面写入账户及权限(r读 w写)
zhangsan = r
sysadmin = rw
[/webphp]
sysadmin = r
zhangsan = rw
# mkdir /opt/svn/repo/webphp
# svn import webphp/ file:///opt/svn/repo/webphp -m "初始化SVN目录" //导入webphp
基本操作说明:
1. check out 检出获得文件后,检出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。(对于导入到服务器中的数据,需要检出才能形成一个受svn控制的工作拷贝,才可以进行 add update commit 等操作) 2. export 简单导出一个版本的数据(把服务器中的数据导出来,相当于复制一份),导出的文件脱离SVN版本控制(导出的就是一个文件,与svn版本没关系),导出后也无法进行Update和Commit操作。导出文件夹下没有.svn目录 3. import 仅仅是把文件导入到svn服务器中,而这个文件本身还只是一个普通的文件,与svn版本库没有关系(导入时需要svn服务器的地址,可以从服务器复制下来,在Repositories下的版本库右击复制) 4. add 把新创建的文件添加到缓存区(执行后显示一个加号),需commit提交才能真正上传到服务器(显示对号) 5. update 把服务器上最新的版本更新下来,比如别人上传的版本(一般提交之前需先更新,否则别人上传的新版本你没有更新下来就会被覆盖,别人上传的就丢失了)