SVN-版本控制:深入浅出入门SVN使用

说在前面

首先讨论一下版本控制的重要性:

  1. 每一个小版本只更新了一个或两个功能,那后面如果出错了,排查错误、进行回滚就可以根据message方便的进行;
  2. 团队协作的时候,必然会出现合作、共同使用代码的情况,比如我们两个人一同更新mainwindow这个文件,那就极可能出现冲突,像我们都在第1000行新写了一个函数,那版本就无法识别到底最后选择哪个,而当这些情况积累起来之后要处理就很困难而且容易出错了,甚至导致覆盖了别人的代码,而覆盖的情况下没有以往多个小版本的信息又很难恢复,所以合作的时候一定要多点merge,多写message,也就相当于交流沟通了;
  3. 所以正常的工作流程就应该是,工作前update同步到最新进度,每工作一会把阶段性成果先add、commit到本地保存,工作结束后再把所有本地版本merge到master中,然后就可以今晚吃鸡啦
    当然,如果遇到大规模重构、大范围更新,导致短期你的代码暂时无法运行,可暂时不merge到master,但也要及时保存到本地,以及update同步master。
    update、merge的过程其实也是实时地交流、了解团队进度的一个过程、

实战演习

下面就是常规的操作内容:

  1. 我们共享,进行版本控制仅为源代码,请理解这一点。所以编译,调试的部分不要上传到云端,更不要merge到master中。同理,一些不需要的文件,如xxx.user该类文件记录特定用户的属性,不需要进行共享。不需要共享,又出现在仓库目录下的东西添加到ignorelist即可,参考项目说明文档。

可以看到这里的.user是没有绿色下标的 因为我添加到了ignore list 。
至于添加ignore的方法,鼠标右键要忽略的文件,找到ignore:
在这里插入图片描述

  1. 每个人仓库根目录应该至于有这两个文件夹,其他文件夹可以删除,也可以不管。
    在这里插入图片描述
    注意,在我们每个人眼里只有两个文件夹,自己的文件夹和master。我们从master同步所有人的更改,再在自己分支上进行修改,最后合并到master上
    至于从master建立自己分支的方法:
    在这里插入图片描述
  2. 每天的工作就是一来先到master update 然后推到你自己的分支 然后在你分支干活 一天结束 然后把你的分支的修改merge 进入 master 大概就是这样:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    注意上述仓库路径。
  3. 关于merge,按照上述图示即可,选择all revisions会拉取对方的所有版本,specific range则挑选具体的版本。每次我们把一次更改推送到云端,就会产生一个版本。
  4. 注意:请妥善处理冲突!有冲突时搞清楚原因,与产生冲突文件的更改者协商,谨慎处理,切勿把别人的工作全部删除。当然删除了之后还可以恢复,不用过于担心。
  5. 请每次Merge到master时填写message,以便大家拉取时能够理解。
    在这里插入图片描述
  6. 正式开始工作,(我建议用Qt creator进行编码工作而不是VS,只要下载了Qt都会自带Qt creator,使用VS在目录与组织形式会麻烦很多,涉及大量的ignore,更可能遇到一些不可抗逆的bug…)
    点击.pro文件,第一次打开要配置kit,直接点确定即可,然后qmake,run即可运行。然后愉快地进行打码即可。运行有错误时,记住clean,qmake,run三连。
    完成阶段性工作后即时commit,merge到master。注意,当添加了新文件后,记得先add,再commit(或者在commit时选择All)。

希望大家习惯这种控制方式.

写在后面

有机会的会再写一篇git和svn的区别(当然这种教程要多少有多少啦),把自己的经验教训总结一下。嗯,继续埋坑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
早在2000年,CollabNet, Inc.就开始召集开发人员开发CVS的替代品。CollabNet 提供一套名为SourceCast协同工作套件,其中的一部分组件是版本控制。虽然SourceCast使用CVS作为其最初的版本控制系统,但是CVS的种种限制从一开始就处处可见,最后CollabNet明白必须要找到一个更好的解决方案。不幸的是,至少在免费license中,因为没有更好的选择,CVS已经广泛成为了开源世界中事实上的标准。所以CollabNet决定开发一个新的版本控制系统,保留CVS的基本特性但去除CVS的bug和不好的特性。   在2000年2月,他们联系《使用CVS开发开源项目》(Open Source Development with CVS)(Coriolis, 1999)的作者Karl Fogel,并征求了他是否愿意在这个新的项目中担任一个角色。巧合的是,当时Karl已经和他的朋友Jim Blandy讨论了一个关于新的版本控制系统的设计。在1995年,这两人就成立了Cyclic Software,一个提供CVS的商业支持的软件公司。虽然他们经营商业服务,但是仍然在每天都在工作中使用CVS。使用CVS的挫折感使得Jim认真思考更好的方法来管理数据,不但确定名字为“Subversion”,而且完成了Subversion档案库的基础设计。   当CollabNet的电话到来时,Karl立即答应了加入项目中,而且Jim让他的雇主RedHat Software同意让他在这个项目中不定期工作。CollabNet雇用了Karl和Ben Collins-Sussman,并在5月开始了详细设计工作。在得到了来自CollabNet的Brian Behlendorf、Jason Robbins和Greg Stein(当时是一名活跃在WebDAV/DeltaV规范过程的自由程序员)很多创意的帮助下,Subversion很快地引起了一个活跃开发者社区的注意。它找出并欢迎很多同样在CVS上受到挫折的社员能来为这个项目做点什么。   Subversion 最初的设计Team定下了几个简单的目标。 它必须在功能上可取代 CVS,也就是说, 所有 CVS 可做到的事, 它都要能够作到。 在修正最明显的瑕疵的同时, 还要保留相同的开发模式。 还有, Subversion 应该要和 CVS 很相像, 任何 CVS 使用者只要花费少许的力气, 就可以很快地上手。   经过十四个月的编码后, Subversion 于2001年8月31日开始实现 “自行管理”。 也就是说, 开发人员不再使用 CVS 来管理 Subversion 的代码, 而以 Subversion 自己来管理。   从启动这个项目到现在,虽然CollabNet提供了大部分的资金(它付出几位全职 Subversion 开发人员的薪水), 但这还是个开源项目, 由一组松散透明的规则所约定。 CollabNet 拥有代码的版权完全符合 Debian Free Software Guidelines。 换句话说, 每个人都可以随意地免费下载、修改、以及重新发布 Subversion; 完全不需要经过 CollabNet, 或是任何人的允许。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值