热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

SVN安装及基本操作(图文教程)

这篇文章主要介绍了SVN安装及基本操作(图文教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.SVN是什么

svn是Subversion的简称,是一个开源的代码版本控制系统,svn就是用于多人共同开发同一个项目,达到资源共用目的工具。

版本控制是什么?

版本控制(Revision control)是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理。可记录每个版本的信息,方便问题追踪。同时版本控制还支持并行开发,可有效的提高开发效率。

为什么要使用SVN?

1.项目备份方便,节省硬盘空间;
2.记录每个版本,方便追溯历史纪录。
3.多人协作开发,共享数据;
4.细节化的权限控制,便于管理员掌控项目整体。

2.Svn服务端和客户端获取方式

服务端:https://www.visualsvn.com/server/download/

客户端:https://tortoisesvn.net/downloads.html

安装完后,在任意一个文件夹下面右键,如果出现下面这个,就说明安装成功了

3.svn工作流程和架构图;

3.1 svn工作方式:

                                                                                 (svn工作流程图)

3.2 svn架构图:

                                                           (svn架构图)

4.操作svn服务器的2种方式 

4.1  command-line 命令行方式; 

4.2  GUI-client图形界面方式;    

4.2.1 svn服务连接方式:

                   (1) internet网络连接:

                                    apache服务器;

                                    svn服务器;

                  (2) local 本地连接:

4.2.2 svn数据存储方式:

                           文件方式:FSFS(推荐使用)

                           数据库方式:BerkeleyDB(伯克利DB)

5.svn服务器目录结构、用户和权限; 

5.1 目录结构:

                Repositories 仓库:存放被svn管理的项目文件,可以存放源码,文档等;

                Users 用户:创建和编辑用户;

                Groups 权限组:创建和编辑用户组;

打开VisualAVN Server步骤:在SVN服务器的安装目录下进入bin文件夹,双击VisualAVN Server.msc即可弹出VisualAVN Server窗口。

 5.2 创建仓库:

    标准文件夹结构:

         branches 分支:如果需要测试新技术,或者大范围修改,将主干代码拷贝到分支中进行,测试无误后可以合并到主干中;

         tags 发布:发布版本要放到tags中;

          trunk 主干:主要开发目录;jia

创建仓库,命名为helloSvn:

创建项目,命名为dev:

 5.3 创建用户:每个开发人员都需要拥有自己的svn账号;

      右键【Users】-【Create User...】,比如创建三个用户siki,lain,lijiang

5.4 创建组:为每个部门配置不同的权限,便于管理;

 5.5 分配权限:在仓库或者目录中为用户/组分配权限;

右键【Group】-【Create Group...】,比如创建2个组admin,javaEE-Team

同理:创建组javaEE-Team:

此时,就可以给项目helloSVN分配权限了,右键【helloSVN】-

6.svn常用操作:  

6.1 checkout 检出:

初次下载 - 第一次连接svn服务器时候需要下载对应仓库的数据(如果仓库中有数据的话);

比如现在让文件夹siki连接SVN服务器,方式如下

然后siki文件夹下面就有文件了

    6.2 add 新增:

新增数据到svn服务器;

比如在trunk文件夹下面新建一个Item.java文件,将此文件添加到SVN服务器:

现在再commit到SVN服务器:

提交成功显示如下界面:

现在我们来到SVN服务器,按F5刷新,可以看到trunk目录下有了Item.java文件了!

6.3 update 更新:

更新数据 - 检查svn服务器中的数据是否与本地的数据一致,如果不一致就下载改变/新增部分,同时不会删除本地数据;

比如在另一个lijaing文件夹下面更新SVN服务器的数据,同样要先在lijiang文件夹里面右键【SVN checkout...】

现在我们去siki/dev/trunk目录中打开Item.java,会发现还没有name属性

此时我们右键【update】更新一下就可以了,就会有name属性了

    6.4 delete 删除:

删除svn的数据(需要搭配commit命令);

比如删除siki/dev/trunk目录下的Item.java文件,选中【Item.java】-【TortoiseSVN】-【Delete】,然后还没完,一定要记得commit!!!

    6.5 revert 回滚:

将指定版本的代码回滚到本地,如要提交到服务器需要搭配commit命令;

然后可以看到Item.java已经被回滚到文件夹里了,同样此时一定要记得commit!!!

commit提交:

    6.6 代码冲突:

在多人同时开发一个类,提交的时候容易出现代码冲突,也可以理解为版本冲突;

比如siki和lijiang同时修改并更新Item.java文件,siki给Item.java添加一个price属性,lijiang给Item.java添加一个num属性。siki先提交,然后lijiang再提交时就会提示是否update,选择确定update,然后lijiang/dev/trunk里面就会有四个文件,

siki给Item.java增加price属性:

lijiang给Item.java增加num属性:

7.其他操作:   

7.1   按照版本检出;

右键【TortoiseSVN】-【show log】

选择保存地址即可

    7.2   账号保存与注销;

在需要注销账号的文件夹里面右键【TortoiseSVN】-【settings】-【Saved Data】-【Clear all】,

    7.3   代码对比工具;

可以高亮显示不同版本文件的不同之处

    7.4   下载指定版本号的文件;

比如新来一个队友,要使用某个文件的旧版本

到此这篇关于SVN安装及基本操作(图文教程)的文章就介绍到这了,更多相关SVN安装内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • Git版本控制基础解析
    本文探讨了Git作为版本控制工具的基本概念及其重要性,不仅限于代码管理,还包括文件的历史记录与版本切换功能。通过对比Git与SVN,进一步阐述了分布式版本控制系统的独特优势。 ... [详细]
  • 解决Jenkins编译过程中ERROR: Failed to Parse POMs的问题
    在使用Jenkins进行自动化构建时,有时会遇到“ERROR: Failed to parse POMs”的错误。本文将详细分析该问题的原因,并提供有效的解决方案。 ... [详细]
  • 解决远程桌面连接时的身份验证错误问题
    本文介绍了如何解决在尝试远程访问服务器时遇到的身份验证错误,特别是当系统提示‘要求的函数不受支持’时的具体解决步骤。通过调整Windows注册表设置,您可以轻松解决这一常见问题。 ... [详细]
  • 本文探讨了在SharePoint环境中使用BDC(Business Data Catalog)时遇到的问题及其解决策略,包括XML文件导入SSP后的不可见性问题以及与远程SQL Server 2005连接的难题。 ... [详细]
  • 本文详细介绍了跨站脚本攻击(XSS)的基本概念、工作原理,并通过实际案例演示如何构建XSS漏洞的测试环境,以及探讨了XSS攻击的不同形式和防御策略。 ... [详细]
  • 利用Docker部署JupyterHub以支持Python协同开发
    本文介绍了如何通过Docker容器化技术安装和配置JupyterHub,以实现多用户的Python开发环境,特别适合团队协作场景。 ... [详细]
  • 本文详细介绍了如何在PHP中使用Memcached进行数据缓存,包括服务器连接、数据操作、高级功能等。 ... [详细]
  • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
  • 如何配置VisualSVN以确保提交时必须填写日志信息
    在软件开发团队中,成员们有时会忘记在提交代码时添加必要的备注信息。为了规范这一流程,可以通过配置VisualSVN来强制要求团队成员在提交文件时填写日志信息。本文将详细介绍如何设置这一功能。 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • 利用Cookie实现用户登录状态的持久化
    本文探讨了如何使用Cookie技术在Web应用中实现用户登录状态的持久化,包括Cookie的基本概念、优势及主要操作方法,并通过一个简单的Java Web项目示例展示了具体实现过程。 ... [详细]
  • MKVToolNix 37.0.0 正式发布:增强的 MKV 格式处理工具
    MKVToolNix 37.0.0 版本现已推出,这是一款专为处理 Matroska (MKV) 格式的强大工具。它能够将各种视频、音频及字幕格式整合进 MKV 文件中。本次更新带来了新的功能和多项 Bug 修复。 ... [详细]
  • Hadoop集群搭建:实现SSH无密码登录
    本文介绍了如何在CentOS 7 64位操作系统环境下配置Hadoop集群中的SSH无密码登录,包括环境准备、用户创建、密钥生成及配置等步骤。 ... [详细]
  • 分布式计算助力链力实现毫秒级安全响应,确保100%数据准确性
    随着分布式计算技术的发展,其在数据存储、文件传输、在线视频、社交平台及去中心化金融等多个领域的应用日益广泛。国际知名企业如Firefox、Google、Opera、Netflix、OpenBazaar等均已采用该技术,推动了技术创新和服务升级。 ... [详细]
author-avatar
QQ文科
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有