您的位置  > 互联网

SVN中集成服务器端和客户端组件统一管理修改

一、SVN的工作原理

SVN()的基本工作思路是:在服务器上建立源代码库。 库可以存放很多不同项目的源程序,源代码库管理员对这些源程序进行统一管理。

每个用户在使用源码库之前,必须先将源码库中的项目文件下载到本地(),然后用户可以在本地进行修改,最后用svn命令提交(),由svn源代码库。 修订。 如下所示:

2. 使用

可以下载SVN并安装(本文使用的版本不再详细说明)。 SVN 中集成的服务器端和客户端组件:

这些组件命令位于安装目录下的bin目录中。

友情提示:安装SVN后,用“-”验证是否安装成功。 如果出现“不是内部或外部命令”错误,则需要手动将SVN bin目录添加到path环境变量中。

1.创建SVN仓库

1)首先创建一个目录:E:\\。 该目录稍后将用作SVN存储库。

2)创建仓库:E:\\。 创建仓库后的目录结构如下:

3)启动SVN服务:-d -r E:\\,如下图:

这样就会启动这个仓库(单一仓库)的服务。 如果目录下还有其他仓库,想同时启动多个仓库,只需执行-d -r E:\(多个仓库)即可。

一般情况下,访问SVN仓库的URL格式为:svn://192.168.1.6/,但如​​果启动单个仓库,则URL直接表示为:svn://192.168.1.6。 svn协议的默认端口号是3690。

提示:如果需要经常使用这个仓库,可以将SVN服务注册为服务,这样开机就可以启动该服务。 如下所示:

删除服务:sc。

2.SVN客户端操作(命令行)

要点:(结账)、(提交)、(更新)

1)在E盘下创建两个目录user1和user2,模拟两个用户一起工作。

2)签出:第一次与SVN服务器交互时,需要在本地签出仓库。

注意:签出一次后,就建立了与 SVN 存储库的连接。

3)提交:

在user1目录下新建Demo1.java文件,并将该文件提交到SVN仓库。 下图展示了三种典型的错误提交。

4)更新:

切换到user2的工作空间(在user2目录下)。 User2第一次使用SVN仓库,需要签出。 user2修改Demo1.java并提交。 切换到user1目录并()。

5)删除和恢复:,

注意:如果提交到服务器(),服务器上的数据也会被删除(谨慎使用)。

3. SVN目录约定

1)使用trunk作为主要开发目录

一般我们所有的开发都是基于trunk的。 当一个版本()的开发结束时(经过开发、测试、文档、制作安装程序、打包等),代码处于冻结状态(人为规定可以通过hook进行管理)。 此时,应该基于当前冻结的代码库来创建标签。

当下一版本/阶段的开发任务开始时,开发将在主干上继续进行。 这时,如果发现之前发布的版本( )有一些bug或者有一些紧急的功能需求,而正在开发的版本( )无法满足时间要求,那么就需要对之前的版本进行修改。 解决办法是根据版本对应的tag来开发对应的()。

2)下图为SVN仓库目录:

当前代码是使用git管理的,所以当前查看的SVN仓库是空的。

4. 使用

它是现在最流行的SVN客户端工具,使用图形界面与SVN存储库交互(作为命令行方法的替代)。 关于安装省略。

安装完成后,您可以右键单击任意位置来查看选项。

1. 基本操作

1)创建仓库

创建目录:E:\\,进入该目录,右键--此处,创建默认的SVN目录结构,如下图:

2)检查:

在E盘下创建两个目录user3和user4,模拟两个用户一起工作。

进入user3目录,右键-SVN,在URL中输入file:///E:/​​/。 【此时仓库中还没有启动SVN服务,所以使用file://】

3)提交:

在user3/trunk目录下新建Demo1.java,右键该文件-添加,将Demo1.java纳入版本控制。 然后右键-SVN,提交到代码仓库。

4)更新:

在user4上执行上述结账操作。 并修改user4目录下的Demo1.java(如添加一个字段),以及。

返回user3/trunk,右键-SVN。

5)启动SVN服务。 这一步需要在命令行输入:-d -r E:\

6) 访问SVN存储库。 右键任意空白位置-Repo,输入URL:svn://192.168.1.6/,浏览SVN仓库内容,如下。

2、其他操作

以下操作均位于右键菜单中。

1)删除:

删除文件或目录不能直接使用命令,否则不会显示但并没有真正删除。 更新后,删除的文件会再次更新。 要从库中删除,您必须选择要删除的内容 - ,以便该文件被标记为删除。 确认需要删除后,使用上面提到的命令,将其真正从库中删除。

2)重命名:

不能直接使用命令进行重命名。 您必须选择要重命名的文件 - 。 修改提交后即可更新到仓库。

重命名过程相当于添加一个新名称的文件并删除原名称的文件。

3)恢复:

提交之前,如果您对之前的操作感到后悔,可以用它来恢复。

4)检查更新:检查

① 该功能可以显示您已经做了哪些尚未提交的修改。 ② 还可以看到存储库中的更改,即哪些文件更改已被其他人提交,但您本地尚未更新。

5)出口:

使用SVN的工作空间的每个目录下都有一个.svn隐藏目录。 您可以使用 SVN 命令轻松导出工作区,而无需 .svn 目录。

3、冲突问题的解决(☆)

什么时候发生:按照4.1节的操作,假设user3和user4目录下的Demo1.java都更新到最新版本。 user3修改Demo1.java并提交到仓库。 如果user4也修改了Demo1.java并提交,则user4会报版本过时的错误,并提醒user4需要更新。 更新过程中会发生冲突。 如下所示:

对于每个更新的冲突文件,冲突文件所在目录中会放置三个文件:

解决方案一:

① 右键单击​​Demo1.java - 编辑。 这时你需要确定需要哪些代码,进行一些必要的更改并保存。 提示:编辑冲突时,可以直接将所需代码复制到窗口中。

② 编辑完成后保存,直接选择标记为,将冲突标记为已解决。 退出编辑冲突窗口,发现冲突时生成的三个文件被自动删除,Demo1.java变成了未提交。

③、好的。

解决方案2:

直接修改Demo1.java,删除部分标签即可(前提是服务器和本地内容都需要保存)。

4. 图标

部分图标说明:

5. 认证与授权

所谓()就是给使用仓库的用户分配一个用户名和密码。 用户连接仓库时需要输入用户名/密码。 ()是给指定用户分配特定的权限,比如只读、读写等,认证和授权设置需要修改仓库conf目录下的文件,如下:

1)修改conf/.conf

2)修改conf/

3)修改conf/authz

这样,当用户再次执行 、 、 时,就会需要进行身份验证。

5.插件的使用

提供了一个集成SVN的插件——本文重点介绍其使用。 插件的安装不是这里的重点。 安装成功后,可以看到如下视图( — Show View )和透视图( — Open ):

以下操作使用 4.1 节中的资源库()。

1)关联资源库

进入SVN资源库研究视角,右键单击SVN资源库面板-新建-资源库位置,在URL中输入:svn://192.168.1.6/。

2)共享项目:共享

在项目中创建一个名为 Demo1.java 的新 Java。

共享项目:右键单击项目-团队-共享...并将项目导入到。 输入文件夹名称时,一般选择使用项目名称作为文件夹名称。

3)提交:

共享后,项目尚未提交仓库。 这时右键项目-Team-将当前项目提交到仓库。

4)检查:

创建一个新用户来模拟另一用户(user2)。 首先关联资源库,右键-签出为。

在 Demo1.java 中添加一个新字段并提交(在 user2 中完成)。

5)更新:

切换到 user1 的工作区并更新项目。 话不多说,团队——

6)冲突处理

冲突的发生参见4.3节。 原则:先更新再提交。

4.3节中的两种解决方案也适用。 方案1对应4.3节中的视图,方案2类似。

6.SVN及集成(使用后见)

业务场景:上面的demo中,SVN仓库通过SVN协议对外提供服务。 最直观的体现就是URL都是以svn://开头。 开源项目中使用的SVN仓库在对外提供服务时使用http协议,需要与服务器结合。

1)安装服务器(假设安装在C:\.2)

2)修改C:\.2\conf\httpd.conf,放出有注释和红色边框的两行(需顺序)

3)从SVN安装目录的bin目录中,将.so和.so复制到C:\.2\目录下

4)使用服务器创建密码文件

5)复制到E:\\svn\\conf目录下

6)将以下内容复制到\conf\httpd.conf末尾

7) 访问SVN存储库。