0734061009 coderplay@gmail com n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
用 svn 进行源代码管理 PowerPoint Presentation
Download Presentation
用 svn 进行源代码管理

Loading in 2 Seconds...

play fullscreen
1 / 30

用 svn 进行源代码管理 - PowerPoint PPT Presentation


  • 182 Views
  • Uploaded on

周敏 (0734061009) coderplay@gmail.com. 用 svn 进行源代码管理. 本文档归暨南大学计算机系 open talk 组版权所有 遵循 Creative Commons Attribution 2.5 协议. 摘要. 为什么我们需要源代码管理 ? 什么是 svn? svn 的基本概念与常用命令 分支与合并 怎么使用 svn 客户端 ? 怎么建立自己的源代码库 ? 怎么把 svn 建立在网页上 ?. 为什么我们需要源代码管理 ?. 代码回归 多人协作开发 版本发布 发布新版本时 , 不中止开发进程

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '用 svn 进行源代码管理' - lawson


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
0734061009 coderplay@gmail com
周敏(0734061009)

coderplay@gmail.com

用svn进行源代码管理

本文档归暨南大学计算机系open talk组版权所有

遵循Creative Commons Attribution 2.5协议

slide2
摘要

为什么我们需要源代码管理?什么是svn?

svn的基本概念与常用命令

分支与合并

怎么使用svn客户端?

怎么建立自己的源代码库?

怎么把svn建立在网页上?

slide3
为什么我们需要源代码管理?

代码回归

多人协作开发

版本发布

发布新版本时,不中止开发进程

有特殊版本时, 可以创建分支

不同版本具有相同的bug 时,进行修复

追踪变化(trac)

自动构建(cruisecontrol)

slide4
什么是svn?
  • svn(Subversion)是个自由、开源的版本控制系统
  • svn的版本库可以通过网络访问
  • svn不是软件配置管理(SCM)系统,而是一个通用系统
slide6
版本库

版本库是svn文件共享的核心,它储存所有的数据。按照文件树形式存储数据——包括文件和目录。

slide7
版本模型

从版本0开始,版本库的快照。

slide8
文件共享的问题

所有的版本控制系统都需要解决这样一个基础问题:怎样让系统允许用户共享信息,而不会让他们因意外而互相干扰? 版本库里意外覆盖别人的更改非常的容易。

我们有两个共同工作者,Harry和Sally,他们想同时编辑版本库里的同一个文件。如果首先Harry保存他的修改,过了一会,Sally凑巧用自己的版本覆盖了此文件。而Harry所有的修改不会出现在Sally的文件中,所以Harry的工作还是丢失了。

slide10
文件共享:锁定-修改-解锁方案(2)
  • 锁定可能导致管理问题
    • 如果Harry锁住文件后忘了此事,则Sally僵住。
  • 锁定可能导致不必要的线性开发
    • Harry编辑一个文件的开始,而Sally编辑此文件的结尾。本来不冲突,修改后合并即可。
  • 锁定可能导致错误的安全状态
    • 如果Harry锁住A,Sally锁住B,而两文件相互依赖,则两文件不能很好地工作。
slide12
文件共享:拷贝-修改-合并方案(2)
  • 合并模型假定文件是可以根据上下文合并的文本文件
    • 例如程序源代码。
  • 对于二进制文件,可以采用锁定模型
    • 如艺术品或声音,有必要采用锁定让用户轮流修改文件。如果没有线性的访问,有些人的工作最终要被放弃。
  • svn两种模型都支持
svn 1
svn操作基本流程(1)
  • 取出版本库到本地工作拷贝
    • svn checkout
  • 更新你的工作拷贝
    • svn update
  • 对本地工作拷贝做出修改
    • svn add
    • svn delete
    • svn copy
    • svn move
svn 2
svn操作基本流程(2)
  • 检验修改
    • svn status
    • svn diff
    • svn revert
  • 合并别人的修改到工作拷贝
    • svn update
    • svn reslove
  • 提交你的修改
    • svn commit
slide15
其它操作命令
  • 检视历史记录
    • svn log
    • svn diff
    • svn cat
    • svn list
  • 清除
    • svn cleanup
  • 导入
    • svn import
slide16
分支与合并(1)
  • 什么是分支
  • 使用分支
    • 创建分支
    • 在分支上工作
    • 分支背后的关键概念
  • 在分支间拷贝修改
    • 拷贝特定的修改
    • 合并背后的关键概念
    • 合并的最佳实践
slide17
分支与合并(2)
  • 常见用例
    • 合并一条分支到另一条
    • 取消修改
    • 找回删除的项目
    • 常用分支模式
  • 转换工作拷贝
  • 标签
  • 分支维护
eclipse svn 1
在eclipse中使用svn(1)
  • subclipse
    • http://subclipse.tigris.org/update_1.2.x
svn 11
配置svn服务器(1)
  • 安装Subversion
  • 建立版本库
    • 通过命令行(svnadmin create)
    • 通过GUI(tortoiseSVN)
  • 启动svn服务
    • apache
    • svnserve
svn 21
配置svn服务器(2)

建立windows服务

sc create svn

binpath= "e:\Subversion\bin\svnserve.exe

--service

-r f:\code\svn"

displayname= "Subversion Server"

depend= Tcpip

start= auto

删除windows服务

sc delete svn

svn 3
配置svn服务器(3)
  • 访问权限分配
  • 初次导入
    • svn import
apache 1
Apache(1)
  • 修改http.conf

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn>

DAV svn

SVNParentPath /usr/local/svn

AuthName “coderplay subversion repository”

AuthzSVNAccessFile/root/svn/conf/authz

AuthUserFile /etc/svn_auth_file

AuthType Basic

Require valid-user

</Location>

apache 2
Apache(2)
  • 添加用户
    • htpasswd [-c] /etc/svn_auth_file svn_user_name
  • 权限分配
    • 编辑/root/svn/conf/authz
  • 重启apache
    • bin/apachectl restart
slide29
参考网址
  • 暨南大学计算机系open talk组

http://code.google.com/p/jnucsot/

  • http://subversion.tigris.org/
  • http://tortoisesvn.tigris.org/
  • http://subclipse.tigris.org/
  • http://svnbook.red-bean.com/
  • http://httpd.apache.org/
  • http://trac.edgewall.org/
  • http://cruisecontrol.sourceforge.net/