我已经完成了我一直在研究的Web应用程序的核心。因为我是唯一一个本地开发的开发人员(灯堆栈)而没有使用版本控制(可能是愚蠢但无论如何......)。现在它已经接近生产准备,我有几个其他开发人员和我一起工作,所以我为我的代码设置了一个存储库。
这是我的问题:我仍然希望能够在发布到生产之前先在本地测试任何更改。如何使用存储库来管理它,而不必维护我的代码的两个版本(我必须手动同步)?首先,生产代码在这里有一些差异(例如数据库常量等)。我希望能够在我的本地存储库中更改我的代码,在我的本地apache服务器上测试它,然后直接将代码检查到生产中(这是否可能使用eclipse)?
我正在使用eclipse和subversion(php代码)。我知道我问了很多问题,但希望你能理解我想要做的事情......我认为它很常见。感谢。
答案 0 :(得分:2)
除了你已经得到的优秀答案之外,我还想强调一下,如果您的开发和生产代码之间存在差异,就会增加风险。您应该在两个位置使用相同且经过良好测试的代码;应该在配置文件中表示环境之间的任何差异。源代码管理中的任何配置文件都只应该是样本;您的部署脚本不应将新配置文件推送到生产环境。
这与标记版本和模仿生产的临时环境相结合,可以帮助您顺利地将代码提升到生产环境。
答案 1 :(得分:1)
听起来你没有创建任何分支或标签,并且可能有一个没有标记的“主干”。最佳实践将要求您拥有当前稳定代码的主干,您开发的分支以及生产站点上实际使用的标记。有short description and diagram on Wikipedia。
当然,这只是最好的做法。您的项目听起来很小,您可以将代码拆分为代码库中的开发/目录和生产/目录。签入开发目录的代码,一旦完全测试了更改,就将其合并到生产目录中。
无论您是以正确的方式还是以简单的方式进行操作,都必须 将开发代码与生产代码分开。随着您添加更多开发人员,开发代码库越来越不可能稳定,因为人们正在检查尚未完全测试但不完整的代码。花一点时间来管理两个代码分支将为您节省很多麻烦。
答案 2 :(得分:1)
我会建议一些事情
这是我多年前处理perl / cgi的方法而且效果很好。 SVN可以更好地处理标签/分支,因此应该更容易处理。一旦我们在推送文件之前开始暂存文件,我们就遇到了很少的生产问题。