项目组使用的是SVN进行代码托管,平时用的时候没有细细研究它的细节功能,一直想着有时间的时候总结一下,故写了这篇文章。
什么是SVN
Subversion(SVN)是一个开源的版本控制系统,也就是说Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(Repositoy)中。这个档案库就像一个普通的文件服务器,不过它不会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。
Repository
- SVN的核心是Repository,储存所有的数据,配置库按照文件树形方式储存数据——包括文件和目录,在权限许可的情况下,任意数量的客户端可以连接到配置库,读写这些文件。通过写数据。别人可以看到这些信息;通过读数据,可以看到别人的修改。
- 最特别的是Subversion会记录配置库中的每一次更改,不仅针对文件也包括目录本身,包括增加,删除和重新组织文件和目录。这一点是和csv不同之处,csv是针对文件做版本控制,而svn是针对整个库,即使只有一个文件发生变更,那么整个库的版本号都会增加。
换句话说,SVN是基于Subversion和TortoiseSVN的版本控制系统
-Subversion:是一个开源的版本控制系统,拥有CVS的大部分特征,使用上大同小异,部分功能更简单易用;
-TortoiseSVN:SVN的客户端工具,集成在资源管理器里面,基于TortoiseCVS的代码开发;
-Svnwebclient:SVN的ie浏览器客户端,无需任何软件即可浏览仓库信息,进行上传下载等操作,简单易用。
工作副本(workSpace)
与位于服务器中的配置库相对应的是每个人的工作空间,它是每个程序员工作的地方,程序员从配置库拿到源代码。放在本地作为工作副本,在工作副本上进行查看,修改,编译,运行,测试等操作,并把新版本的代码从这里提交回配置库中。
SVN使用图标说明
表示Subversion状态正常。
当我们开始编辑一个文件后,图标将变成红色感叹号。通过这种方式,可以很容易地看出我们对哪些文件做了修改操作,但是还没有提交到版本库中。
如果在修改过程中出现了冲突,图标将变成黄色感叹号。
如果我们拥有了一个文件地锁,并且Subversion状态是正常,这个重载图标将提醒我们:如果不使用该文件地话,请进行释放锁操作,运行其它成员提交对该文件地修改。
表示当前问价夹下的某些文件或文件夹已经被几何从版本控制中删除,或是该文件夹下某个受控的文件丢失了。 加号告诉我们有一个文件或是目录已经被计划加入版本控制。
SVN的一些概念
Checkout(提取):当你手上没有源代码的时候,你需要从repository checkout一份
Commit(提交):当你已经修改了代码,你就需要Commit到repository
Update(更新) : 当你已经Checkout了一份源代码,Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更
如果两个程序员同时修改了同一个文件,SVN可以合并这两个程序员的该点,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。如果是同一行,SVN会提示文件Conflict,冲突,需要手动确认。
SVN安装
在Windows下安装SVN,(其它型号的电脑可以自行搜索下哈)
1.准备svn的安装文件
下载地址:https://sourceforge.net/projects/win32svn/
ShowLog(显示日志)
日志填写规则
日志信息主要记录的是每次的修改内容。建议把一些重要数据、关键操作写到日志信息中。‘
注:修改人和提交时间由软件自动记录,无需人工写入日志信息。
Revert(还原)
作用:撤销本地所有未提交的修改
注意:还没有执行Commit操作之前执行此命令才可以,否则无效。
ADD(添加)
选中文件/文件夹(在新文件夹所在父文件夹点击右键)
在菜单中选择“添加Add”命令
关于冲突的建议
1.修改文件之前,先进行一次update操作;
2.修改完成后,及时commit,不要在本地停留过长时间;
3.在多位团队成员协作时,分工要分明,尽量修改自己撰写的部分,不要修改不属于自己撰写的部分;
4.出现冲突很正常,不要相互覆盖。
使用工具解决冲突
1.使用自带工具,右键冲突,选择编辑冲突。
2.对比两个使用工具解决冲突版本的文件,解决冲突。
3.工具中会列出两个版本冲突的部分,并让我们选择使用哪个版本的内容。