SVN代码管理器

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有操作权限

猜你喜欢

转载自www.cnblogs.com/yoyovape/p/9633154.html