1、安装SVN的服务器端subversion
2、安装SVN的客户端TortoiseSVN
3、搭建SVN的仓库,比如我在E盘的根目录下创建了一个SVN的目录,在SVN目录下又创建了一个目录SVNRep,用来存放各个项目的,比如我在该目录下又创建了三个目录OA、ERP、CRM,分别用来存放三个不同的项目。
4、创建版本库
4.1、打开cmd,进入到相关目录下,比如我进入OA项目下
然后执行DOS命令:svnadmin create E:\repository\SVNRep\OA
完了之后,我们可以看到在OA目录下多了这些文件:
5、启动服务器
-r:表示版本库的根目录
-d:表示后台执行程序
我们依然打开cmd,然后输入如下命令:
回车执行该命令,然后会弹出一个对话框,问我们是否允许subversion访问网络,点允许访问。
怎么测试服务已经启动了呢?
看3690端口是否被监听:
像这样服务就启动了,但是要保证服务器一直开着,就必须保证执行svnserve -d -r E:\repository\SVNRep\OA的窗口一直保留,这样其实是很不方便的。
对此,我们可以注册一个window服务,让该svn服务随着系统启动而启动
6、注册window服务
打开cmd,执行如下dos命令
sc create SVNService binpath= "D:\Programming\subVersion\setlocation\bin\svnserve.exe --service -r E:\repository\SVNRep" start= auto depend= Tcpip
我们在服务里面可以看到,SVNService已经启动了
此时服务已经启动成功了
7、checkout命令
我们在cmd窗口输入 svn checkout svn://localhost/OA命令
但是出错了,如下图提示:
有人说是因为TortoiseSVN(客户端)的版本比Subversion(服务端)的版本要高
我的TortoiseSVN的版本:1.9.2
我的Subversion的版本:1.8.8
然后我将TortoiseSVN版本降至1.8.1,还是会出现上面的错误。
经过网上一番查找,终于找出了问题:
问题真实原因:
可以看到第四步和第五步
我是先执行了第四步,创建了OA,ERP,ORM这些版本库,然后再执行第五步,启动服务。而在启动服务之前创建的版本库是无效的
后来我在启动服务之后,通过svnadmin create E:\repository\SVNRep\Test创建一个新的版本库
然后再通过svn checkout svn://localhost/Test 取出这个版本库,这时候就没有错误了。
现在我们成功将服务端的Test目录checkout到E:\svnClient\MyOA\Test里面了,这时候我们在Test文件夹里面有一个.svn文件夹,这是一个隐藏文件夹,用来客户端与服务端的一个连接作用,不要将它删掉了。
8、commit命令
8.1、首先我们在E:\svnClient\MyOA\Test下面新建一个文件名为helloSVN.txt的文件
8.2、执行提交命令 进入 Test 目录下面,执行svn commit helloSVN.txt命令,但是出现了如下错误:“xxxxxx”尚未纳入版本库
8.3、将helloSVN.txt纳入版本库:执行命令 svn add helloSVN.txt,完了之后会有如下响应 A helloSVN.txt
其中:A表示文件的状态 刚刚加入进来
8.4、再次提交,还是会出现错误,错误如下:
他给我们提示的错误原因是没有提交日志
8.5、增加提交日志,再次commit,仍然没有成功,提示错误为认证失败。
8.6、找到E:\repository\SVNRep\Test\conf目录下的svnserver.conf文件
将该文件的第19行的注释去掉,并将read改为write
改后如下:
8.7、再次执行提交命令:终于成功了
9、另一个用户(Tom)从服务端checkout出来项目,修改后并提交,假设Tom所在的目录为:E:\svnClient\Tom
该操作大家可以去尝试做一下
最后提供一下课程地址:http://www.chuanke.com/v1982732-196863-1122355.html,我是根据百度传课的视频教程来进行操作的,希望对大家有用,有不明白的可以咨询我,或者对着视频认真看。