Web 开发的版本控制

Version Control For Web Development

我需要有关为 Web 开发设置版本控制的帮助。我自己(使用 Tortoise SVN)为我自己的文件做这件事,但我在扩展我的过程时遇到了麻烦。目前我们有两台服务器,Dev/Test 和生产。

我个人的流程如下:

  1. 开发测试模块。
  2. 将每个里程碑提交到我的个人存储库中。
  3. 重复直到完成
  4. 找到我手动修改的每个文件并将它们移至生产环境。

现在我的目标是简化流程,以便我们可以从存储库推送到 prod,从而消除手动更新。

不幸的是,我们使用 WAMP,因此我们在为每个开发人员设置虚拟机时遇到许可问题。因此,我们所有人都在一台服务器上工作,我相信这会扼杀这个梦想。

我一直 运行 解决将一堆废话上传到生产环境的问题。我发现很难将准备好的文件从垃圾文件中分离到 TortoiseSVN 进行推送。我查看了合并和导出,但它们执行整个目录并且不允许我选择我想要的文件。即使我们每个人都有一个 VM 和我们的环境,我怎么能合并分支而不用创建过程带来的废话。 (虽然我输入这个似乎是开发人员的责任)

我将如何创建工作流来完成此操作?

编辑 我让它工作了。

我使用了批处理文件、分支和补丁。每个服务器都有自己的分支。当我们在测试上开发时,我们将所有更改(甚至是废话)提交到测试分支。当开发人员想要推送到 prod 时,他使用批处理文件使用 svn diff 将 PROD 分支与 TEST 分支进行比较,然后使用 tortoisemerge 将补丁应用到 PROD。这很重要,因为它允许开发人员选择要修补的文件。最后,它使用 TortoiseProc.exe 将更改提交到 prod,开发人员可以对更改发表评论。我们使用相同但相反的过程从 PROD 更新 TEST。

  1. 对于多存储库开发,SVN 是一个糟糕的选择,迁移到 DVCS(不要使用 Git)将使生活变得更轻松,但它题外话,在这个问题中,由于标签最多

无论如何,您可以尝试从 SVN 开始,这个解决方案(脏草稿,冲突是您的头疼)甚至可以扩展到少数开发人员(您将遇到的不是技术问题,而是中大型组织问题-size SVN-team)

  1. 在 TEST|PROD|每个 DEVEL 上创建 相同的 存储库,它们将共享 相同的 UUID强制!!!) - 问问你的 SVN 管理员,如何实现它
  2. Post-在 TEST|PROD 上提交挂钩必须在提交到 repo 后更新每个环境的本地 WC
  3. 从 TEST 签出,在 TEST 上开发、提交和测试
  4. 在达到稳定点后,将您的 WC 重新定位到 PROD 存储库并提交(修改)工作副本作为一个压缩的巨型提交,它将包含在上一次提交到 PROD 之后对 TEST 所做的所有更改
  5. 重新定位回测试

对于多开发人员工作,您必须为每个开发人员创建个人分支,跨分支同步|mering 在提交到 PROD 之前,可能忘记了一些东西