1.1 SVN相关:
全称Subversion,是代码版本管理软件,管理着随时间改变的数据。这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。 许多人会把版本控制系統想像成某种 “时光机器”,作用如下。
① 多人开发同一个项目不会出现代码覆盖情况。
② 针对一个文件可以创建许多不同版本,并且可以随时查看不同版本的内容。
③ 公司领导可以通过svn查看每个人的工作情况
1.1.2 基本知识
服务器端:setup-subversion-1.6.5.msi
客户端:tortoiseSVN-1.8.625419-win32-svn1.8.8.msi 32/64,安装完成后需重启
创建SVN仓库:svnadmin create F:\svnServer\app\shop (会生成众多文件,若启动失败,直接去svn根目录下启动)
启动单个SVN仓库:svnserve -d(独立端口运行) -r(仓库地址) 仓库地址 //启动某个仓库服务
svnserve -d -r F:\svnServer\app\shop //该svn服务走svn协议,端口号码是3690
启动多个SVN仓库:svnserve -d(独立端口运行) -r(仓库地址) 仓库地址 //启动某个文件夹下的仓库服务
svnserve -d -r F:\svnServer\app\ //该app下的仓库都可以使用
码农与仓库建立联系(单个SVN):
右键单击需要建立联系的文件:关联成功,会生成隐藏文件“.svn”
(Enzo) -> SVN Checkout -> ①svn://localhost ②G:\myWeb\Enzo //①当前启动的SVN仓库 ②Enzo要提交的文件夹
码农与仓库建立联系(多个SVN):
(Enzo) -> SVN Checkout -> ①svn://localhost/shop ②G:\myWeb\Enzo // shop/blog/etc
右键单击需要建立联系的文件:关联成功,会生成隐藏文件“.svn”
//①当前启动的SVN仓库中的某个仓库 ②Enzo要提交的文件夹
单个码农提交文件:
①右键单击需要提交的文件:->tortoiseSVN->add // 每个文件,只需要一次add即可
②右键单击需要提交的文件:->Commit //注意点:需先赋该文件提交权限
开启仓库匿名账号权限:app/shop/conf/svnserve.conf 将里面anon-access = write
仓库中对应日志地址:F:\svnServer\app\shop\db\revprops\0
仓库中对应代码信息:F:\svnServer\app\shop\db\revs\0
注:①首次使用svn执行 checkout,同时会把仓库最新程序文件更新到本地
②update 当多个程序员对同一仓库作业,可用update将最新代码更新到本地页面
③新目录内部的文件不能直接提交
③多个版本之间切换:->tortoiseSVN update to revision //会删除切换到当前版本之后的所有版本数据
1.1.3冲突&解决
SVN的冲突:
广义角度的冲突:提交程序文件 本地版本号码 小于 仓库服务器版本号码.
狭义角度的冲突:多个程序员对同一个文件、同一处代码进行修改,在他们提交文件的时候会产生冲突。
冲突解决:
① 令牌方式解决,给每个文件设置令牌,谁获得令牌谁有权利开发该文件。
vss(visual source safe)源代码控制管理软件使用该方式
② 通过版本号码进行控制,用户commit文件,本地文件版本 与 仓库版本号码必须一致才可以提交。
SVN就是通过版本号码解决冲突:①A先提交A文件,②B更新A文件后才能提交A文件,如果有冲突,会有三个文件生成,只有删除了这三个文件,B才能再次提交A文件
1.1.4账号和权限
开启仓库账号权限:
①app/shop/conf/svnserve.conf 中开启以下两处;
password-db = passwd & authz-db = authz #引入外面passwd& authz文件,分别在里面配置相应账号跟权限
②app/shop/conf/passwd文件中设置账号和密码 => Enzo = Enzo123
③app/shop/conf/authz 文件中设置权限 =》①[/] ②Enzo = rw ③Jokin = r #①具体仓库,②读写权限
A 给一个组别设置权限
如果有许多程序员,他们是属于同一个小组的,为了权限分配比较方便、后期维护便捷,就给他们设置到一个组别里边去,给组别设置权限,就等于给每个用户设置权限了
① [/] ② php = php1,php2,php3,php4 ③ @php=r 注:密码分别设置
B 只操作某个目录权限
具体步骤:
① 管理员先把该目录video给创建出来并提交给svn仓库
② 给外部团队 设置账号 和 设置工作目录、和其分支目录权限
③ 外包团队 建立与仓库分支目录 的联系(checkout)
④ 外包团队给该 目录提交文件
⑤ 管理员执行update更新操作,把该分支目录从仓库更新下来即可查看外包团队的工作情况。
①[shop:/video] ②Enzo = rw ③Jokin = r #①只对shop下的video有操作权限
原文地址:https://www.cnblogs.com/yoyovape/p/9633154.html