初识SVN

备注:若有不正之处,请多谅解并欢迎批评指正。转载请标明链接:https://www.cnblogs.com/pmbb/p/11471430.html

SVN

需求:

1.为了数据的备份

2.代码还原

3.协同修改

4.多版本项目文件管理

5.追溯问题代码的编写人和编写时间

6.权限控制

解决方法:版本控制

Subversion是一款版本控制的工具软件,通常也称为版本控制器,简称SVN。

安装SVN

创建版本库

--先进入到你项目要保存的目录

--然后 svnadmin create 目录名

   文件目录结构:

conf  --当前版本的配置文件(设置文件权限的时候用到这个conf)

db    --数据库保存的地方

hooks --钩子程序(像sql里的触发器)

locks  --跟文件的锁定有关

format

README.txt

 

启动服务器

netstat -am   查看监听的端口号(看3306后边3690)

不能关闭命令提示符窗口(因为关闭也代表着服务也关闭了)

有一种方法可以解决

注册windows服务(让它随着系统的启动自己启动)

也是在命令提示符窗口里边  

 sc  create  SVNService binpath= “svn的可执行文件路径 --service -r 版本库的路径” start= auto depend= Tcpip

 

条件:以管理员身份运行命令提示符窗口

看启没启动 启动了说明命令没打错。如果没启动成功,检查一下引号里的命令有没有写错

命令行(客户端)

在SVN工作空间找到具体的工作文件

 

svn  checkout svn://localhost/项目名  (多仓库的需要项目名  单仓库的不用)

 

现在你的工作文件中就有了“项目名”这个文件夹了,假设在里面写了一个TXT

然后使用提交命令

 

先进入项目名这个目录底下

svn  add 项目名.文件扩展名   (先加入到版本里)

 

svn  commit -m “提交说明” 项目名.文件扩展名

 

条件:先到服务端的具体项目下的conf里的svnserve.conf 打开

看到

# anon-access = read (anon是匿名单词的前四个字母)

# auth-access =write(auth是权限的前四个字母)

 

然后把第一个改成anon-access = write

=====================

 

来到另一个 进行检出

 

先来到工作目录

svn  checkout svn://localhost/项目名

 

进行文件修改后

先进入项目名这个目录底下

 

svn  commit -m “提交说明” 项目名.文件扩展名

 

//文件更新

svn update 所要更新的文件名

Eclipse插件安装

安装好的插件会在Team下展示

 

把下载好的插件文件解压好放到eclipse下的dropins文件夹下即可

Eclipse需重启一下

 

还可以在help 里 的eclipse markeplace... 里在线装

Eclipse分享和检出

创建好的项目 右键点Team 选择share project 选svn 下一步 选中创建新的资源库位置(c)

下一步 输入地址 如:svn://localhost/OA  再点击下一步 finish

 

切换到同步视图 选择项目 右键选择提交 上面空着的是写日志的地方 点击OK

 

如果想看一下服务器端svn下有什么

我们可以打开透视图。Open perspective 选中svn资源库研究

 

如果创建的项目是动态web项目会有点不一样 build文件夹没有

 

项目右下角有小圆柱的代表添加进去了,但build没有 build文件夹里装的是编译后的class文件 编译会有些出入,所以不把build放入

 

检出:

右键 点 import 选择svn 下的从svn检出项目 点击下一步 默认选中的是创建 点击下一步 输入地址 如:svn://localhost/OA (localhost具体看情况)下一步 选中具体项目名称 下一步 下一步 finish

 

可以看到检出的项目中build文件右下角是一个蓝色的问号 表示:没有纳入版本控制的目录

 

选中build 右键 Team 选中添加至svn:ignore(D) 点OK 然后可以看到build文件没有符号了,说明build文件已经没有参加版本库的管理了

 

项目右下角是一个黑色的星号 代表:该项目下有没提交的一些文件

 

如果要提交的话,右键点Team 点击提交(c)... 提交后会变成一个金色的圆筒

更新提交

改了文件的东西 文件右下角会有一个黑色的星的图标

Team 下点更新 能拿到刚更改的数据

 

如果新建了一个Java文件 点Team (选中添加至版本控制(A) 可直接提交)点击提交

仓库分析

在svn同步视图中

右键  新建 资源库位置 URL:svn://localhost/OA (我们来研究一下URL)

 

然后打开计算机属性里的服务 找到svn的服务 查看属性 里面有一个可执行文件的路径:

我们可以看到这是svn仓库的位置

 

URL地址必须指向一个带有conf/db/.../这些目录的文件夹的目录

 

 

冲突

一个人在第5行改了代码 提交了

另一个人也在第5行做了修改 (事先没获取直接修改)然后提交 会报错说文件过时了

必须先更新一下

 

如果没有修改的同一个地方是可以提交的

 

在冲突的文件点右键 Team 有一个编辑冲突 编辑完后保存

选择刚刚的冲突文件点右键 选择标记为解决 点击OK

然后文件右下角有黑色星号(代表与服务器文件对比有更改)

这个时候提交就可以了

 

权限

在服务器下的具体文件下的svnserve.conf 打开编辑器

打开 auth-access=write

 

password-db=passwd  我用那个文件来保存我用户名密码的信息

authz-db=authz  表示用authz 这个文件来保存授权的信息

 

然后打开conf文件夹下的passwd

 

写入 如:

tom  = 123456

jerry = 123456

ceshi = 123456

然后打开authz  去设置具体的权限

 

我们可以看到[groups]  --分组的意思

kaifa = tom,jerry

 

[/foo/bar] 表示:给根目录下的某一个目录分配权限

[/]

@kaifa = rw @可以让它知道这是一个组不是人

ceshi =r

* = 表示:起到一个屏蔽的作用,除了上面设置的这些,其他的什么用户都什么权限也没有

 

然后提交的时候会弹出提示框。输入用户名 和密码

 

在文件夹后面就可以看到是哪个用户提交的了

 

时光机(代码还原)

比如:选中需要的Java文件  右键 Team 选择显示资源历史记录(H)

此时会报错

 

解决办法  来到服务器上的具体项目文件夹下的conf中的svnserve.conf文件 将# anon-access=read改为anon-access =none

 

这个时候就可以了。

如果想变成以前的版本 直接选中右键 选中获取内容即可 然后提交

 

TortoiseSvn

 

除了eclipse插件 还有一个独立的SVN 叫做TortoiseSvn

参考网址:http://www.gulixueyuan.com/my/course/53

原文地址:https://www.cnblogs.com/pmbb/p/11545511.html