SVN的使用

Easter79
• 阅读 641

一、如何在本机下操纵SVN

使用步骤

1、下载svn(TortoiseSVN),测试svn是否成功:

svn --version

SVN的使用

2、创建本地临时文件目录,这里是模拟服务端的仓库,代码提交地方,也是代码拿取的地方,假如项目做的事OA系统,就将代码放入OA中

SVN的使用

3、利用svn在临时文件目录中创建中央仓库

svnadmin create D:\Temp\OA

此时在OA目录中会生成一些文件目录

SVN的使用

4、启动服务端程序

D:\Temp\OA>svnserve -r -d D:\Temp\OA     #-r表示版本根目录   -d表示后台执行

5、注册windows的svn服务

sc create MySVNService binpath= "D:\SVN\bin\svnserve.exe --service -r D:\Temp\" start= auto depend= Tcpip

SVN的使用

并检验服务是否启动:
SVN的使用

6、此时客户端可以访问服务端(注意:此时是另外开启一个cmd窗口),这里是复制主工作空间

先创建一个文件夹,用户开发者操作空间,这里是代码提交和拿取的工作空间,如D:/TempOA/MyOA/OA,该OA文件夹中拥有helloword.txt文件,用于模仿即将提交的代码

D:\TempOP\MyOA>svn checkout svn://localhost/OA

SVN的使用

7、提交文件

D:\TempOP\MyOA\OA>svn commit helloword.txt

此时会报错,是因为说明该文件没有纳入版本控制,不可以提交到服务器端。

SVN的使用

8、纳入版本控制

D:\TempOP\MyOA\OA>svn add helloword.txt      #A表示刚刚加入仓库

SVN的使用

9、提交代码

SVN的使用

此时报错是因为提交代码时得注明一些提交的信息,如提交版本、提交人等。。

D:\TempOP\MyOA\OA>svn commit -m "first commit" helloword.txt

此时还会报错,是因为没有权限操作OA,得到OA中设置访问权限

SVN的使用

打开服务端文件夹D:/Temp/OA中的svnserve.conf文件夹,打开# anon-access = read注释,并将read改为write

SVN的使用

此时通过cmd窗口再次提交代码,代码可以提交成功

SVN的使用

10、检验是否提交成功

创建一个新文件夹用于模拟另外一个开发者Temp2,从服务端复制仓库

SVN的使用

此时Temp2中会生成OA文件夹,其目录中有helloword.txt文件,说明提交成功

SVN的使用

11、改变版本提交

向helloword.txt文件夹中新添一些数据,并提交代码

D:\Temp2>cd OA
D:\Temp2\OA>svn commit -m "jiaxianseng commit" helloword.txt

SVN的使用

此时可以看出提交的版本变成了2

12、更新版本库

此时开发者一还是原来的版本,更新需要update命令

D:\cd TempOA
D:\TempOA>cd MyOA
D:\TempOA\MyOA>cd OA
D:\TempOA\MyOA\OA>svn update helloword.txt

SVN的使用

二、SVN在myeclipes中的使用

1、前提本机中安装了svn客户端

2、下载myeclipes的svn插件:下载插件

3、将下载好的压缩包解压,并将其中的features文件夹和plugins文件夹复制到myeclipes安装目录中的dropins目录中

SVN的使用

SVN的使用

4、启动myeclipes

5、新建项目,右键点击项目,选择Team中share project,选中SVN

SVN的使用

6、选择创建新的资源位置,并指定URL

SVN的使用

7、此时会提示是否进入同步界面,选择yes,此时可以提交代码,可以指定提交部分,也可以整个项目一起提交,右键点击项目,选择提交,并写上备注

SVN的使用

8、其他开发者如果想要拿取代码,直接采用import->SVN

SVN的使用

相关注意项:

  SVN有几个图表需要注意:

       1) 金色圆筒表示版本和仓库保持一致

       2) 黑色星号表示在原有文件中新增内容但是未提交,

  3) 问号表示新增类但是未提交,未参与版本比对

           SVN的使用

三、关于SVN冲突与解决

1、什么是SVN冲突

     SVN冲突是指两个开发者更改同一个地方(如同一条语句),后来提交的人会显示SVN冲突,表示提交已经过时

  SVN的使用

  2、关于SVN冲突的解决

   1) 若出现以上情况,先更新代码,此时会出现以下内容,显示在两者版本不同的地方

  SVN的使用

       2) 项目下也会新增历史版本,方便开发者进行对比

SVN的使用

    3) 右键点击发生冲突的文件,点击Team->编辑冲突,此时会出现两个版本不一致的地方,只要点击保存,默认认为你冲突已经解决

SVN的使用

  4) 冲突解决后,有冲突的类会变成图下的形式

       SVN的使用

    右键点击原来冲突的类,选择Team->标记为解决,此时项目下的历史版本就会自动删除,此时提交不会出现错误

    SVN的使用

四、关于SVN设置权限

   SVN设置权限是基于对代码的安全性操作,防止非权限用户操作代码

1、编辑svnserve.conf文件

  1) 之前是采用的匿名访问,如果要设置权限,首先得开启授权访问代码

# anon-access = write     #匿名访问
  auth-access = write     #授权访问

  2) 开启password-db,表示用哪个文件来保存用户名密码信息

password-db = passwd

  3) 开启authz-db ,表示用authz文件来保存授权信息

# authz-db = authz

2、编辑passwd文件,该文件是用来新增授权用户名及其密码

     这里新增tom和jerry用户

tom = 123456
jerry = 123456
ceshi = 123456

3、编辑

[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe

kaifa = tom,jerry           #新增用户组      


# [/foo/bar]
# harry = rw
# &joe = r
# * =

[/]                         #表示在跟路径下
@kaifa = rw          #开发组有读和写的权限
ceshi = r           #测试只有读权限
* =               #过滤其他用户,没有读写权限

4、此时代码的更新和提交都需要经过用户验证

       SVN的使用

五、关于SVN的“时光机”

  SVN时光机是指查看获得历史提交的版本

  1、想要获得历史版本,首先得将配置文件svnserve.conf文件中的匿名用户设置为none

anon-access = none    
auth-access = write

  2、此时右键点击项目文件,选择team->显示资源历史记录,便可查看到历史的版本

SVN的使用

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
SVN的使用
一、如何在本机下操纵SVN使用步骤1、下载svn(TortoiseSVN),测试svn是否成功:svnversion!(https://oscimg.oschina.net/oscnet/532e1f61228a5d51eb7bd5801c07956e105.png)2、创建本地临时文件目录,这里是模拟服务端的仓库,代
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k