1、数据仓库:

2、客户端

二、界面操作 7

2、Add

3、Commit

5、双方同时提交,或产生冲突

6、通过来查看svn服务器上的内容

7、导入文件到svn中

8、恢复到指定版本或时间点:message是关键信息

9、通过导出功能,导出纯净的项目(不带.svn文件)

10、权限控制

三、SVN与Eclipse整合

四、SVN与Apache整合

前言:没有版本控制

*代码管理混乱

*备份多个版本,占用磁盘空间大

*解决代码冲突困难

*容易引发BUG

*难于追溯问题代码的修改人和修改时间

*难于恢复至以前正确版本

*无法进行权限控制

*项目版本发布困难

一、基本操作:

*确认安装是否成功:svnadmin--version

*创建svn数据仓库:svnadmincreateD:\repository\SVN\testsvn

*启动svn服务:svnserve-d-rD:\repository\SVN\testsvn[单仓库启动]-d后台执行-r版本库的根目录

svnserve-d-rD:\repository\SVN[多仓库启动]建议使用

*验证svn启动是否成功:使用netstat-an查看3690端口是否被占用

*客户端检出代码:svncheckoutsvn://ip:port/repName.

例子:[单仓库取出]E:\client\zhangsan>svncheckoutsvn://192.168.1.36.

*将本地文件纳入版本控制:svnaddfileName

*提交文件到svn服务器:svncommit-m"message"fileName

1、将svnserve.conf中的#anon-access=read改为anon-access=write

2、

3、Lisi进行checkout并更新后


*客户端更新文件到本地:svnupdate[fileName]

*恢复文件:svnrevertfileName注意:只能恢复未提交的操作

*删除文件:svndeletefileName

*将svn服务注册为windows系统服务:sccreateSVN-Servicebinpath="D:\ProgramFiles\Subversion\bin\svnserve.exe--service-rD:\repository\SVN"displayname="SVN-Service"start=autodepend=Tcpip

1、数据仓库:

2、客户端

3、svn服务器启动

*cmd命令行启动

svnserve-d–r文档仓库路径

-d后台执行

-r版本库的根目录

*Windows服务自动启动

在D:\ProgramFiles\Subversion\bin(SVN服务器端安装目录)文件夹下新建svnSetup.bat,内容为:

sc
createSVN-Servicebinpath="D:\ProgramFiles\Subversion\bin\svnserve.exe
--service-rE:\repository\SVN"depend=Tcpipstart=auto

scstart
svnserve

pause

其中:binpath为SVN服务器端目录;d:\MySVN为SVN库目录

运行后(或以管理员身份运行),会新创建一个服务名为:svnserver,可通过运行services.msc查看,将其设置自动运行(有时候需要重启电脑)

sccreateSVN-Servicebinpath="D:\ProgramFiles\Subversion\bin\svnserve.exe--service-rE:\repository\SVN"displayname="SVN-Service"start=autodepend=Tcpip

4、svn常用命令

svncheckout-从版本库取出一个工作拷贝

svncommit-将改动的文件提交到版本库

svnupdate-更新你的工作拷贝

svnadd-向版本库中添加新文件

svndelete-从版本库中删除文件

svnrevert-取消所有的本地编辑

svninfo-显示本地或远程条目的信息

svnlist-列出版本库目录的条目

svnstatus-查看当前工作区状态

svnhelp-获取帮助信息

二、界面操作

Subversion目录规范

/trunk存放开发的“主线”

/branches存放支线副本(不确定的副线(功能))

/tags存放标签副本(记录不同的版本(状态))

1、Checkout:注意:如果输入的是IP地址要在插网线和不能禁用网卡,本地IP地址或localhost则不用

2、Add

3、Commit

4、给用户配置权限和密码

*配置svn你serve.conf文件

*配置password文件

*配置authz文件

5、双方同时提交,或产生冲突

出现如下文件和图标

*解决方法:Editconflicts编辑冲突

最后点击Resolved即可

*避免方法,need-lock机制

need-lock为true时,一个时间只能有一个人操作该文件

注意:在修改一个文件之前,先要确定该文件时最新,否则会出错

释放锁的两种方法:*提交,失去锁

*主动释放锁

*文件加锁

*获取锁

6、通过来查看svn服务器上的内容

7、导入文件到svn中

8、恢复到指定版本或时间点:message是关键信息

Showlonging

9、通过导出功能,导出纯净的项目(不带.svn文件)

10、权限控制

需求:zhangsan对oa项目trunk有读写权限,lisi只有读的权限

lisi对oa项目branches有读写权限,zhangsan只有读的权限

配置zuthz文件

11、注意:.svn这个隐藏目录记录着两项关键的信息:工作文件的基准版本和一个本地副本最后更新的时间戳。

千万不要手工修改或删除这个.svn隐藏目录和里面的文件!!!否则将会导致你本地的工作拷贝(静态视图)

被破坏,无法再进行操作。

三、SVN与Eclipse整合

下载SVN插件(http://subclipse.tigris.org)

我们使用版本eclipse_svn_site-1.6.5.zip

进入myeclipse、eclipse安装目录中dropins目录并创建一个svn的文本文件(文件名任意)。

解压到上面文件夹即可文件夹中

*打开myeclipse、eclipse点击找到

*新建SVN资源库

*检出

*发布功能

*常见操作

四、SVN与Apache整合

1、下载Apache(http://httpd.apache.org/download.cgi)

apache_2.2.14-win32-x86-no_ssl.msi
2、打开Apache安装目录下Apache2.2\conf\httpd.conf配置文件:
将下列2行前方的#移除(第83行):
LoadModuledav_modulemodules/mod_dav.so
LoadModuledav_fs_modulemodules/mod_dav_fs.so
并同时在上面两行下面增加以下两行(一定放在这个位置)
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
找到Subversion安装目录下的以下两个文件
bin/mod_authz_svn.so
bin/mod_dav_svn.so
复制到Apache安装目录下modules目录中。
3、使用Apache安装目录下的bin/htpasswd.exe可执行文件来生成授权文件,第一次生成使用-cb参数:
htpasswd-cb[filename][username][password]
例如:htpasswd-cbpasswd.apache用户名密码(其中用户名需为svn中添加的用户名)
将生成的passwd.apache文件移动到SVN版本库中\conf目录下
4、apache安装目录下的conf\httpd.conf文件的最后面加入:
#配置项目虚拟目录#
<location/svn/itcast>
#引用远程访问模块
DAVsvn
#项目版本库路径#
SVNPathF:/software/repository/svn/itcast
#授权文件#
AuthzSVNAccessFileF:/software/repository/svn/itcast/conf/authz
#所有用户都需要身份验证#
SatisfyAny
Requirevalid-user
#验证方式#
AuthTypeBasic
#项目的名称#
AuthName"itcast"
#用户文件#
AuthUserFileF:/software/repository/svn/itcast/conf/passwd.apache
</location>

5、访问方式:

“http://localhost/svn/itcast”

*可以通过RepositoryBrowser访问

*可以通过浏览器访问

后记:使用SVN我们应该?

经常更新:降低冲突的可能性

提交前需在本机测试通过:降低将问题代码传到版本库

提交时一定写备注:方便其他员工查看和自己以后回顾

对于不需要提交的文件不要提交到版本库