2010-05-01 114 views
3

在我最后一个Drupal项目中,我们有5个人在编写和安装新模块,我们的客户端提供内容的同一类型。由于我们选择只有一台服务器以简化操作,因此有时候很多人需要写入像style.css或page.tpl.php一样的文件,或者某人破解代码会阻止其他人使用团队的Drupal开发工作流程

有没有与Drupal合作的团队的最佳实践?如何利用代码存储库或沙箱?

回答

2

单个服务器可能会给你“简单”,但它给你的东西,就像你所经历的那样,是完全混乱的 - 如果它不会导致不愉快和难以置信的效果,重现,难以修复的崩溃。不要满足于“生产”服务器以外的任何东西(客户可以在其中工作 - 仅限于内容 - 如果他们喜欢小风险;-)和“升级”服务器(开发团队中的任何内容经过一段时间的测试并尝试推广到开发之前,这是在安静且理想的预先安排时间完成的)。

二,使用版本控制系统一些类。其中一个重要的小于使用一个在所有:svn很受欢迎,简单的,最新的时尚(优秀原因)分布的如hggit,微软等在该领域的商业产品等

的要点是,每当有人更新文件时,他们都会在自己的VCS客户端上这样做。当一组连贯一致的变化是正确的,它被推送到VC​​S,并且VCS诊断并指出任何“冲突”(两个开发者可能做出矛盾变化的地方),因此当前推送的开发者负责编辑文件并且在冲突被允许通过之前修复冲突。只有这样,“最新版本”才允许进入分期系统进行更彻底的(和理想的自动化! - )测试(或者更好的是,“连续构建”系统)。

基本上,应该有两层针对您观察到的冲突的防御,而且您似乎也没有部署过。然而,如果他们被迫在一个挑剔的环境下被迫,我想我会不情愿地选择生产服务器和登台服务器之间的区别 - 开发仍然是混乱的(与任何VCS的简单稳定性相比,这是无法容忍的! )但至少它不会直接伤害实际的服务系统;-)。

+0

不错的答案,作为Drupal项目的架构师,我想补充一点,应该真正与Git一起使用。我们一直在使用Subversion,它已经几次将我们踢到了一边。 Drupal.org本身正在转向使用git,因此这对开发人员来说也是一个很好的举措。 – coderintherye 2010-05-02 02:16:59

+0

是的,很好的答案。这几乎是我在Drupal站点上合作的方式。我们目前使用Subversion,它很好地工作。 过去我们还没有使用临时服务器。相反,我们只是使用与生产服务器(相同模块,相同数据库)紧密匹配的Drupal安装在我们自己的机器上开发。我们不时地从生产服务器获取sql转储,以保持内容与我们自己的安装同步。 – 2010-05-02 10:22:36

+1

在我们的案例中,我们发现每个开发人员都有他/她自己的服务器很有用。使用XAMPP和MAMP很容易。这样开发人员就可以做到暂时破坏Drupal的事情,而不会对其他人造成任何问题。 当代码看起来很稳定时,它将被检入到SubVersion中并在登台服务器上进行测试(与生产类似)。 这听起来像是一个额外的步骤,还有一层额外的复杂性,但我们确实发现它运作良好。 – Graham 2010-05-03 14:16:20