我需要了解在共享服务器(hostgator)上管理团队Web开发的最佳方法。
我以前在共享服务器上做了一些单独的Web开发,我总是通过SSH设置SVN,以获得一个非常好的开发工作流程(版本控制,快速提交,工作虽然日食/ subclipse等) 。但是,我也知道,通过该设置,我必须制作一些非常复杂的提交后挂钩,以将存储库导出到/ public_html;因此,使存储库代码可测试。
对于整个团队来说,这似乎是一个单调乏味,容易出错的设置。我希望能够:
考虑到这一点,有没有人知道一个良好的版本控制/存储库设置,用于开发一个约4-5人团队的网站?
非常感谢。
编辑:我非常有信心我被SVN困住了。不是个人偏好,而是我的网络主机的限制。但是,它不像存储库问题(可以使用SVN管理),而是部署问题。什么以及如何将存储库代码部署到测试和生产的最佳方式。我的共享托管服务器上没有像Hudson这样的构建服务器。是的,我可以编写post-commit钩子,但它似乎有点容易出错,而且它们已经非常花哨了。如果这是我能得到的最好的,那么我将不得不管理。只是好奇是否有人遇到了另一种选择。
答案 0 :(得分:5)
让我们直截了当
与任何数量的同事合作项目的最佳方式是通过一些svn客户端。我对tortoisesvn
有最好的体验在开始一个新项目之后,你应该做的第一件事就是像这样设置项目存储库
your_project
trunk
branches
tags
其中trunk代表您最新的稳定生产代码。 dir branches适用于从事项目工作的开发人员。每个开发人员都应该拥有自己的分支,当然还应该有一个像
这样的发布目录branches
r01
developer1
developer2
developer3
所以行动方案应该是这样的:
这里有一些像hudson这样的工具,他在检测到新的测试标签后会自动部署新测试。当然,何时何地依赖于配置
最后,当时机成熟时(每个测试人员完成他/她的工作)管理员将最新版本合并到trunk(我们的稳定代码),afterwhitch创建一个新标签,例如标签/ r01从trunk和hudson完成剩下的工作(自动部署我们网站的新版本
然而,我只是在这里擦拭表面,在乌龟svn和哈德森手册上围绕这个特殊问题进行了很多头脑风暴。希望这有帮助答案 1 :(得分:2)
我知道你具体提到了颠覆,但你是否坚持颠覆?我发现在使用git的多人开发环境中,情况要好得多。仅合并跟踪能力就是救命稻草。事实上,每个人在本地拥有完整的历史记录,可以更快地查看历史记录和离线开发。你在颠覆中失去了一些能力。最大的损失是子树检查和在子树上执行ACL的能力。恕我直言,那些值得放弃。一些小脚本,您也可以使用git进行半自动部署。
答案 2 :(得分:1)
我正在探索https://bespin.mozillalabs.com/用于我的网站开发的可能性。看起来很有希望。编辑器和版本控制系统。完全在线。尝试一次,看看你是否喜欢它。
答案 3 :(得分:0)
您可以使用以下内容:
http://www.assembla.com?affiliate=joedeveloper
(原谅联盟嫖娼)
这使您可以从回购单击一次部署,并为您提供Scrum工具和门票等内容。
其他低技术解决方案是简单地将登台服务器设为public_html / git存储库。
在生产服务器上进行shell访问时,您可以根据需要提供稳定的分支。
答案 4 :(得分:0)
您使用SVN的示例似乎非常简单。我猜你用钩子后提交注释得到的东西就像持续集成或每晚构建过程。有许多工具可以帮助您。
这里有一个很好的讨论:Setting up Continuous Integration with SVN
至于团队中最好的源代码控制系统,似乎大多数进入游戏的人都喜欢使用git或Mercurial(两者都被认为是分布式版本控制系统)。对SVN的最大批评是分支/合并功能的难度。大多数人推广git / mercurial是因为它具有轻松分支和合并的能力,允许每个开发人员在他们的本地机器上拥有自己的存储库,并在他们到达特定里程碑时将他们的存储库与中央存储库合并。这意味着他们不必使用半工作代码来破坏构建,但是当他们对本地计算机上的分支进行非常复杂的更改时,也不必在没有源代码控制的情况下使用数周。