一、SVN-版本控制系统
respository-中央资料档案库(可以记录每一次的文件变动)
1、版本控制实现方案:拷贝-修改-合并
2、TortoiseSVN和SVN的使用:TortoiseSVN是一个类似于插件扩展的应用
TSVN常用命令:
-Repo-browser
-SVN Checkout
-SVN Update:修改后的更新
-SVN Impot:项目导入版本库
-SVN Commit:将本地修改的文件提交数据库
-SVN Revert:取消上一次的操作,是解决冲突的一种方法
-SVN Resolved:解决冲突
-SVN Edit conflict:编辑冲突
-SVN Showlog:查看文件或者文件夹的修改历史记录
-SVN Delete:删除文件或文件夹
-SVN Get lock:文件上锁
-SVN Release lock:释放上锁
-SVN add:添加文件或者文件夹
-SVN Merge:合并代码(Merge命令只能是文件和文件,或者文件夹和文件夹进行合并)
-SVN Blame:查看代码历史提交记录
-SVN Externals:实现两个不同目录的文件的同步修改、更新等操作
注意事项:修改任何文件时请先将此文件更新再修改
二、git、TortoiseGit、SVN、TortoiseSVN的关系和区别
git:分布式版本控制系统
分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库
SVN:集中式版本控制系统
集中式代码管理的核心是服务器
图形化工具: TortoiseGit和TortoiseSVN
区别:
1、仓库的区别
Git: 从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上
SVN: 每个版本库有唯一的URL(官方地址),每个用户都从这个地址获取代码和数据
2、提交到仓库
Git: 在单机上自己创建的分支上提交代码
无网络连接时也可以commit、查看历史版本记录、创建项目分支等操作
网络连接时在进行push到server端
SVN: 提交必须有网络连接(非本地版本库)
提交需要授权,如果没有写权限,提交会失败
提交并非每次都能够成功。如果有其他人先于你提交,会提示“改动基于过时的版本,先更新再提交”… 诸如此类
3、冲突解决
SVN: 冲突解决是一个提交速度先后的问题,先提交不会遇到,后提交,可能遇到冲突解决
Git: 开发者之间使用pull 命令解决冲突
三、Bugzilla-缺陷跟踪系统
1、Bugzilla是什么:用于管理软件开发中缺陷的提交、修复、关闭等整个生命周期。与其他测试用例管理工具(如 Quality Center,Testlink 等)链接
2、Bugzilla处理流程:
-登陆Bugzilla
-new
-resolved bug
-fixed bug(回归测试)
对于状态为NEW的bug,开发人用的resolution可选项有:fixed,cancel,deffered,reject,track
对于状态为CLOSE的bug,只有:Reopen
对于状态为TRACK的bug,只有:fixed,close
编程经验与要点
1)字符串放进字符串库
2)指针初始化符值为NULL
3)构造函数中初始化所有数据成员
4) 有一个malloc,就应该有一个free。malloc分配的内存初始化。free后的指针要设置为NULL
5)简单的数据类型、较小的局部变量不要去new,直接在栈上生成
6)减少重复代码
7)避免过长的函数
8)避免过大的类:类应考虑分解
9)避免类之间依赖环:几个类形成了小团体,谁也离不开谁
10)switch语句应该考虑以“多态”来替换