1、数据仓库:
7、导入文件到svn中
四、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我们应该?
经常更新:降低冲突的可能性
提交前需在本机测试通过:降低将问题代码传到版本库
提交时一定写备注:方便其他员工查看和自己以后回顾
对于不需要提交的文件不要提交到版本库