我有一个工作学习上的小技巧,就是使用SVN来搭建一个实验环境,用以提高工作和学习的效率。这个方法我使用多年,自接触SVN以来就一直在使用。一直想分享出来,但有两个顾虑,一是这个方法本身并不是什么高深的技术,说出来可能贻笑大方;二是我也不知道该怎么定义这个方法,不确定是否有必要一说。
直到后来速读了《程序员的思维修炼》之后,在其中找到了共鸣,作者提到有必要为自己、团队、公司建立一个安全的实践环境去探索、创造和应用想法。正好契合自己的这个方法,这才斗胆说一说。
相对于生产环境,实验环境有什么好处?
- 快速迭代
- 可随时使用新方案、新框架
- 任意修改
- 不必考虑规范规则
- 从不考虑后果
- 可以大胆做开源
- 从实验环境积累稳定代码或模块,一旦生产环境需要,可以快速使用。
如果是团队的开发环境,你能随心所欲地操作吗?不能。然而想法产生的时候应该快速响应它,否则顾忌太多,慢慢地也就凉了。想法迭代的次数越多,它就会更加积极地出现,这是一个正向反馈,不断推进你往前探索。
我使用SVN干了什么?
- 在电脑上搭建本地SVN库。
- 本地SVN速度很快,适合进行文本文件的差异对比。
- 改动出错方便回滚。
- 使用GitHub的免费仓库,但是使用SVN更新提交代码。
- 使用国内的码云创建私有的代码仓库,但是使用SVN更新提交代码。
- 因为有提交SVN,从未丢失过代码。
- 鉴于以上,我受益颇多。
为什么选择SVN而不是Git?
- 因为是个人的实验环境,没有分布式管理的需求,SVN就足够。
- SVN更新提交非常方便,不需要记忆复杂的命令行,可以减少额外的意识压力。
- 只需记住极少的操作:开始前update,写完后commit,对比差异diff。这样的好处是,只需要关注我的实验内容,而不是工具的使用。
- 对于自己的测试环境,可以不写提交日志(可以从我的GitHub仓库提交记录看出:bigsinger,本地及其他实验SVN上也几乎不写记录),写完就提交,一个字:快。
- 最后,仍是“快”。
最后,我想特别说明一下,实验环境可以随意操作,完全不必按照规则规范来,目的只是让想法快速验证或者快速实现demo。而一旦到了生产环境,我们就要遵循公司或团队的规范,例如老老实实使用Git,并且在提交的时候务必写清楚备注信息。例如本人在公司的SVN仓库提交代码时,无论巨细从未遗漏过提交备注信息。
这里仅仅是在说创建实验环境的好处,做开源项目时仍然可以好好去做,就如同上面所说,在生产环境要遵循规范认真对待一样。
实验环境从不写提交记录不会出问题吗?以我这么多年的实验结果,可以肯定地说不会,从来没有出现过什么问题。相反,我倒是经常听到很多开发人员抱怨自己因为没有实验环境而丢失代码的事情。
文档信息
- 本文作者:zhupite
- 本文链接:https://zhupite.com/other/svn-is-good.html
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)