热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SVN功能说明(简版)

Subversion(SVN)是什么?SVN是一种版本管理系统,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会

 


Subversion(SVN)是什么?

SVN是一种版本管理系统,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会出现混乱的情况,版本管理系统就是为了解决这些问题

SVN是一个开源的版本控制系統Subversion的简称。Subversion 管理着随时间改变的数据。这些数据放置在一个中央资料档案库 (repository) 中。 这个档案库很像一个普通的文件服务器(通常可以安装ftp,sftp等文件服务器软件),不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史,而且它还可以把你的svn工作目录下的文件一一对应地上传到服务器上,不需要你手工指定该传到哪里。 许多人会把版本控制系統想象成某种 “时光机器”。

版本控制是管理数据变更的一种技术。对于程序员来说,它已经成为不可或缺的工具,因为他们经常修改软件代码,产生部分的变更,然后第二天再取消所有的变更。想象有一群程序员同时工作的情况你就能理解,为什么需要一个良好的系统来管理可能出现的混乱。

 

SVN的一些基本概念:

•   Repository(源代码库)-源代码统一存放的地方;

•   Checkout (提取)-当你手上没有源代码的时候,你需要从repository checkout一份;

•   Commit (提交)-当你已经修改了代码,你就需要Commit到repository;

•   Update (更新)-当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更;

•   Revert(回版) 当你发现由于误操作、思路问题等对本地文件进行了改动,但此改动还不如原来的某一个版本完美,稳定。你可以使用该功能,把版本回复到以前的版本上。

 

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) -->作出自己的修改并调试成功 --> Commit(大家就可以看到你的修改了)。

下图中,每个User都使用自己的账号进行控制,svn服务器会记录每个用户更改和删除文件的操作记录。

 

 

如果两个程序员同时修改了同一个文件,SVN可以Merge这两个程序员的改动,合并两个版本。实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行呢,SVN会提示文件Conflict(冲突),需要手动确认。


怎么样才可以使用SVN进行程序开发?

你需要有一个SVN客户端,当然在Windows下和Linux下甚至Mac下你都能找到相应的合适的软件。在大多数人的开发环境Windows下,我们推荐使用TortoiseSvn。

 

总结:

         使用SVN服务器的主要目的是实现团队协作效率,理论上来说项目越大,参与的人越多,它的优势就越突出。至于我们利用SVN把同一个项目分成多个子模块进行存储,意在人为分隔项目文件,增强文件的安全性。这点倒是有点违背SVN软件的初衷,所以往往模块的分发一般是以开发小组为单位进行划分,最大限度利用SVN版本控制功能。

 

 

 

 

 


推荐阅读
  • 最佳PHP源码加密工具推荐
    本文探讨了几款高效的PHP源码加密工具,旨在帮助开发者保护其代码免受未授权访问。文章不仅介绍了商业软件的选择,还提供了一些免费且实用的加密工具及其使用方法。 ... [详细]
  • 2017-2018年度《网络编程与安全》第五次实验报告
    本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。 ... [详细]
  • 本文详细介绍了在不同操作系统中查找和设置网卡的方法,涵盖了Windows系统的具体步骤,并提供了关于网卡位置、无线网络设置及常见问题的解答。 ... [详细]
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 本文探讨了如何解决PHP文件无法写入本地文件的问题,并解释了PHP文件中HTML代码无效的原因,提供了一系列实用的解决方案和最佳实践。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 本文详细介绍了 phpMyAdmin 的安装与配置方法,适用于多个版本的 phpMyAdmin。通过本教程,您将掌握从下载到部署的完整流程,并了解如何根据不同的环境进行必要的配置调整。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 本文详细介绍了如何正确配置Java环境变量PATH,以确保JDK安装完成后能够正常运行。文章不仅涵盖了基本的环境变量设置步骤,还提供了针对不同操作系统下的具体操作指南。 ... [详细]
  • 解决vCenter vSphere HA初始化失败的问题
    本文探讨了在集群中遇到的所有vSphere HA主机状态显示‘无法正确安装或配置vSphere HA代理’错误的情况,并详细介绍了排查与解决步骤,包括检查HA初始化错误及安装HA代理的常见故障排除方法。 ... [详细]
  • 持续集成概述与实践指南
    本文探讨了持续集成(CI)的基本概念、目的及其在现代软件开发中的应用。通过实例分析,帮助读者理解如何有效实施持续集成,提高软件开发效率。 ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
author-avatar
手机用户2502902993
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有