作者:手机用户2502902993 | 来源:互联网 | 2023-10-16 09:36
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版本控制功能。