3

我们有一个庞大的内部基于 Web 的系统,目前由 3 名开发人员组成的团队维护。我们当前的设置是 1 台开发服务器和 1 台生产服务器 - 可能很快会有 2 台生产服务器位于负载均衡器后面。我们当前的工作流程是所有开发人员在开发服务器上实时更新文件。每当我们准备好更改时,我们会将代码库同步到生产环境。我们发展迅速并且经常改变事物。很长一段时间以来,我们一直希望开始使用版本控制来更好地控制我们所做的更改和整体代码质量。唯一的问题是如何正确地做到这一点以及什么是最有效的方法,因为我们仍然必须保持快速发展。

我的一些问题是:

  • 我们的主要代码库包含带有 3rd 方库、图像等的目录。我们很少接触它们。这些也应该被跟踪吗?
  • 只有一个主分支可以工作吗?所以每个开发人员都会使用主分支,该分支将被拉到主开发,然后到生产。
  • 生产应该设置为裸回购还是没关系?

这是我想出的设置。请让我知道您的想法并提出改进建议。 在此处输入图像描述

4

2 回答 2

1

我不喜欢你的计划的是部署阶段。为什么?因为 1)这是一个手动过程,并且 2)它是基于拉动的。我也不确定我对生产服务器上的版本控制存储库的看法。

我想建议的是构建一个rsync用于生产服务器的小脚本,包括 rsync--delete--exclude .git/选项。如果您愿意,您可以将当前提交的 SHA1 写入一个小文件,这样您就可以随时了解在线内容。

理想情况下,该脚本不会直接同步到您的文档根目录,而是同步到一个新创建的目录,然后将您的文档根目录符号链接到该目录。使用时间戳命名该目录,也可以使用提交 SHA-1。这样,如果任何事情都没有按照预期的方式工作,您只需要调整符号链接的目标。

于 2013-06-29T15:27:04.513 回答
1

恐怖所有开发人员都在开发服务器上更新文件。没有源代码控制

At'a Boy 感谢您修复您的架构和工作流程。我在很久以前的工作中就遇到过这种情况。

  • 是的,您绝对应该检查您的 3rd 方库、图像等。您很少接触它们,因为如果您更新它们,世界就会崩溃。除非您可以像第一个一样构建它,否则您不能将第二个生产服务器联机。每件事都需要运行所有相同软件的相同版本。在我的项目中,我们在源代码控制中安装了服务器上的所有内容。

  • 是的,只使用master就可以了,你不想一次改变太多的运动部件。随着时间的流逝,请重新访问以查看您是否准备好/需要分支工作流程。

  • 您不能使用裸仓库。没有文件可供 Web 服务器运行。

伟大的工作,好的问题和设计。

我肯定会为每个开发人员使用子域。我工作的另一个地方,一家商业软件公司,邪恶的聪明人,就是这样做的。

我的一个建议是让 stage.project.com 在生产服务器上运行。它将使用生产数据源并让您在生产环境中进行测试。

此外,团队中的每个人都应该观看。Git 年龄 4 岁及以上http://www.youtube.com/watch?v=1ffBJ4sVUb4和额外的信用观看高级 Git http://vimeo.com/37408017

于 2013-06-29T05:37:53.220 回答