`
kuyuyingzi
  • 浏览: 53065 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

SVN的详细使用说明

 
阅读更多

1、数据仓库: 5

2、客户端 6

二、界面操作 7

2Add 8

3Commit 9

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

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

7、导入文件到svn 16

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

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

10、权限控制 18

三、SVNEclipse整合 19

四、SVNApache整合 23

前言:没有版本控制

*代码管理混乱

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

*解决代码冲突困难

*容易引发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、客户端

3svn服务器启动

*cmd命令行启动

svnserve-dr文档仓库路径

-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

其中:binpathSVN服务器端目录;d:\MySVNSVN库目录

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

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

4svn常用命令

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

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

svnupdate-更新你的工作拷贝

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

svndelete-从版本库中删除文件

svnrevert-取消所有的本地编辑

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

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

svnstatus-查看当前工作区状态

svnhelp-获取帮助信息

二、界面操作

Subversion目录规范

/trunk存放开发的“主线”

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

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

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

2Add

3Commit

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

*配置svnserve.conf文件

*配置password文件

*配置authz文件

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

出现如下文件和图标

*解决方法:Editconflicts编辑冲突

最后点击Resolved即可

*避免方法,need-lock机制

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

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

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

*主动释放锁

*文件加锁

*获取锁

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

7、导入文件到svn

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

Showlonging

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

10、权限控制

需求:zhangsanoa项目trunk有读写权限,lisi只有读的权限

lisioa项目branches有读写权限,zhangsan只有读的权限

配置zuthz文件

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

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

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

三、SVNEclipse整合

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

我们使用版本eclipse_svn_site-1.6.5.zip

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

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

*打开myeclipseeclipse点击找到

*新建SVN资源库

*检出

*发布功能

*常见操作

四、SVNApache整合

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目录下

4apache安装目录下的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我们应该

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

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

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

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics