上周,在Red Gate好朋友的帮助下。我发起了一个名为小竞赛赢得优秀的SQL Source Control 5份授权的活动。参加的方式很简单-分享你使用源代码控制过程中,本可以避免的最痛苦的经历
许多痛苦的故事都出现了。但是我认为这五个获奖者的故事值得分享,并且我都做了评论,因为我觉得随着时间的流逝,这些故事依然对我们有所启发。那么,开始享受这些故事吧,我希望这些知识中的闪光点能够帮助你以后不会掉进相同的陷阱里。
给获奖者:希望那些授权可以帮助抚慰你们关于那些已经过去的痛苦记忆。不久我会联系你们关于奖项颁发的相关事宜。
1.通过Ctrl-Z来进行源代码控制
第一个故事来自 courtesy of MyChickenNinja ,仅仅文字就看得我头疼。在这个特殊的故事里。应用程序被前员工破坏了。。这非常头疼。但是至少还是有很多方法可以恢复代码的。如果不要求数据的话。。
第一个问题是备份,最近的备份已经是3周前的。这绝对是一个教训—你的环境真的备份了吗?一会我会在另一个故事里简单的再说到这个问题。故事的核心部分是通过Ctrl-Z来进行伪源代码控制
他们运行他们的代码,并且不断地更新,也包括开发环境,并且使用Ctrl-Z来撤销坏的改变
好吧。这实在令人难以置信-如果你的应用程序已经做了一些编辑。然后被关闭了。怎么办?或者PC关机了?等等—他还说他们在哪写代码,哪儿就是开发环境?记住!撤销不是源代码控制!
2。多个数据库和集成问题
第二个故事来自Brandon Thompson,他极度不开心,因为他工作在一个有着很多数据库源的环境里,并且,这些数据库都在正在进行的开发项目下面,数据库集成非常困难,这就意味着处理多个数据库备份可能还有个在海外。。
我们的开发团队在海外,因为他们有他们自己的数据库集,这些数据库我从没看到过。但是他们会把改变的文件发给我们来适应我们的开发环境
我发现最痛苦的是简单重复的手工劳动仅仅是使得大家能够协同的更好。这是没有一点创新并且没有任何增值的行为,比如增加新的特性,这就导致除了干这些。没什么时间真正在写代码了。
源代码控制是为了能够保证团队之间平稳尽量无摩擦的一起工作。它是项目的一个润滑剂,和持续集成开发还有自动部署都属于同一类。这些都是软件开发中的“面包和黄油”,是任何成功团队编写代码的基础。
3. 依赖未测试的备份
下一个是Barry Anderson,他写了一个我们都曾经经历过的痛苦:不能从备份恢复了!事实上在Barry的故事里。几个月都没备份了。之前备份本身还是坏的。这太糟糕了。但是,对于那些依赖备份的人来说这是一个严重的疏忽。
当然对于这个疏忽也有自己的借口。Barry解释道:
我们的经理(不是存储团队的)后来告诉我们既没时间也没空间来测试备份了。。。
备份是一件很重要的事情。但从备份可以恢复也是同等重要,我最近在配置大量的新环境的时候,备份本应该发生的但是就是没有发生。只有当我坚持要进行恢复测试的时候,问题才浮出水面,对于很多人来说。只有当他们真的需要从一系列的数据丢失中恢复数据的时候,才发现不能恢复了。。测试你的备份,恢复他们,不要相信任何人的说辞.
4.人工合并工具
来自Graham Sutherland的故事讲了一个人来做机器工作的故事
我们有一些开发人员,每一个在他们的硬盘上的都有整个项目的一个副本,每一次一个改变发生的时候,我们就会下载技术老大改变的源代码,然后使用diff工具来查看改变。然后手工更新他们。一行一行。。全靠双手。。
这个故事比听起来还要不可思议,在源代码控制工具出现以前这确实是存在的。一个海外开发团队成员就是这样干的。随后他们这样解释:带头的开发者需要在提交前检查其他开发人员的工作进度。
这确实是类似于之前的观点,在有多个数据库集成的情况下;我们有技术来解决这些问题!每当一个人在软件开发中从事任何劳动密集型,重复的过程,你真的不得不停下来问:“有没有更好的方法?”通常是有的。
5.剪切和粘贴版本控制
Robin Vessey 让我产生了共鸣,因为它真的是伪VCS(Version Control System)最普遍的方式。剪切或者复制,然后粘贴到新的位置,通过这种方式会包含重复的目录或者文件。因此一般这些文件会被以日期或者其他标识符来标识时间帧。
在Robin的故事里,他打算通过网络移动一个目录结构。
他很简单但高效,我剪贴然后粘贴了一个完整的目录树,任何东西,通过网络发送。但这些文件留在了我这一边。却没有到达另一边。我仍然不知道为什么。
我必须承认,我对任何剪切和粘贴文件的操作的态度是非常谨慎的,因为我看到这种情况在一个本地文件系统中发生了很多次,更不用说通过网络了,在上面的的Robin的故事,就是没有备份被恢复,因为他们一段时间后会停止备份,“因为我们没有更多的空间”。是不是感觉好像和前面某一方法很像。。
总结
工作在一个没有源代码控制的环境下是很可怕的。现在就停止吧。伙计们,我们是很优秀,但在在源代码控制下工作是很专业的。并且现在有很多的VCS产品。托管服务,集成工具,真心是没有任何理由不把代码-包括数据库,部署在源代码控制下。
原文地址:5-ways-to-do-source-control-really
著作权声明:本文由http://leaver.me 翻译,欢迎转载分享。请尊重作者劳动,转载时保留该声明和作者博客链接,谢谢!