实施源代码管理

问题描述:

我的公司有3个开发人员。我,另一个人,还有一位副总裁。我真的想要实现源代码管理,特别是因为我们的代码似乎是随机更改的。我们倾向于在服务器上开发,生活等。实施源代码管理

我很好,在我的机器上有一个我们的数据库的副本工作,如果有必要,和其他人一样。 VP开发人员不需要它。我该如何与他合作改变主意,或让他为他工作?

+0

为什么没有经常备份的服务器上的开发数据库? (如果可能的话每天更新,或者至少备份表格结构等) – Earlz 2009-12-14 20:55:53

+1

VP不希望源代码管理,或者不想让您针对实时数据开发?完全独立的问题,同样重要的纠正。 – RedFilter 2009-12-14 20:56:25

+0

假设服务器在内部,否则我会设置其中一台机器作为数据库服务器,用于开发 – Earlz 2009-12-14 20:56:26

你必须让他认为这是他的想法。

指出,与源代码控制你不仅拥有了一切的内置备份,但你也有以前的版本 - 让他意识到有多少是一件好事。

+0

如果他是一个不合理的人,这就是答案。 – 2009-12-14 21:04:11

你应该有源代码管理。没有很多借口没有它。源代码控制将保护您免受可能导致代码出现问题的更改。我建议将db模式和数据(样本集)放入您的版本控制中。这将允许对数据库进行独立更改,而不会影响用户在网站上看到的内容。

安装SVN并告诉反对它的人“每个人都这样做”:) 严重 - 对于单个开发人员来说,源代码控制是必须的,更不用说三个人了。

至于数据库服务器 - 你可以使用一个开发服务器(它可以是一个普通的机器)。如果您使用每个本地副本,这当然没有问题,但您必须拥有强大的数据库架构生成/同步工具。

+1

这些天基本上没有理由使用集中式SCM,并且有许多理由使用分散式的(即使独立于主回购并不重要,git和mercurial提供了许多便利,颠覆缺乏)。 – 2009-12-14 21:16:09

+0

这完全是主观的,说“没有理由”只是错误的;) – Bozho 2009-12-14 21:36:17

+0

http://git.or.cz/gitwiki/GitSvnComparsion – Bozho 2009-12-14 21:37:33

请注意,您并不真正问这里的源代码管理,而是关于您的开发数据集所在的位置。如果可能的话,每个开发人员的本地数据库是最好的,但如果失败了,一个合理的选择是只需要一个包含源控制服务器和开发数据库的虚拟机。

+0

你可以看看使用远程源托管服务作为github。 – 2009-12-14 21:25:04

把源代码管理下的东西是很容易 - 从字面上看,从现在开始你10分钟可以有源控制下的来源。而不是试图说服他,我会继续前进,无论如何要做。

开始简单地把你的源代码拷贝源代码控制下 - 即使他不使用它只是合并来自现场的变化到你的源代码控制库定期。至少你有修改历史的方式(如果你是他是唯一改变源代码的人,这意味着你没有做出任何改变,他一定已经做出来了)

幸运的是,随着时间的推移他会慢慢开始看到好处(他:哦,不 - 一切刚刚打破你:别担心,我会去看看自上次工作副本有什么变化......)

这听起来就像你需要说服他说的那样:

  1. 需要解决一个问题,
  2. 适当的解决方案(不正是你所需要的)和
  3. 使用方便。

听起来就像你有信息来证明#1:上一次代码在服务器上“自己改变”,并且你失去了某人的工作或混合结果很差。巴姆,这是你的“问题。“#3是下一个更加困难的事情:你需要选择一套具有良好工具的SCM并进行演示.TortoiseX系列产品(TortoiseHg,TortoiseSVN)非常适合这样做,因为它们使它变得非常可怕。为了说服他,可以参考其他程序员的轶事,或者通过查看Github,在那里你可以回顾以前版本的我在这里抓着吸管,因为我觉得他的论点是,“Ach,那是一个非常头疼的事情,当事情破裂的时候。这不会是值得的。”

显然,有大量的方法来处理人(以及大部分你有一个‘人’)的问题。

的第一件事我会。做的是找出为什么他这么对源代码控制很多时候,谁不喜欢的源代码控制两种人不喜欢:

  1. 不要总是在下一个工作到互联网的额外工作
  2. 查看其中没有其他值

对这些问题中的每一个都有不同的解决方案。显然第三个是棘手的,所以我会最后处理它。

如果他们不喜欢额外的提交工作,一些chron脚本将帮助他们(或Windows调度器)。一些经常在后台提交的东西,或者递归地通过他的文件并将它们添加到下一次提交中。这意味着你将在你的最后做更多的工作来清理额外的文件并处理破损的构建,但这是一个步骤。或者,如果他通过电子邮件向您发送代码,则提交电子邮件的脚本也可以运行。

如果他并不总是在互联网访问旁边工作,可以考虑使用像GIT这样的系统。 GIT的优点(比如SVN)的优点是它利用了拉动模式而不是推动。因此,您从其他GIT用户提取更新,而不是推送提交。如果您正在飞机上工作并且无法访问互联网,这是一项很有价值的功能。

最后,证明系统的重要性是艰难的。最好的例子几乎总是:“我的机器烧毁了。”我想你可以把他的盒子炸开,但是现在让我们看看那些不会让你的老板失望的方法。

证明存储库重要性的一种好方法是每日构建。每日构建意味着您可以快速集成功能并发现错误。建立一个每天构建一个存储库将显着改善你的工作条件,并可能给人留下良好的印象。

这些只是人们不喜欢源代码控制的几个原因,但关键的想法是找到他的理由并适应它。