假设有一个遗留 Java 项目 A。无论出于何种原因,该项目中都有一些机密的东西(例如密码、加密密钥、电子邮件)和/或特定于环境的东西(例如硬编码路径、服务器名称、电子邮件)。由于涉及的复杂性,似乎不可能将项目更改为不包含源代码中的信息。
在某个时候,一个新的外包团队加入了开发。鉴于上述情况,外包团队无法逐字访问项目源代码。他们有一个单独的开发环境,因此可以在他们的 VCS 中制作一个单独的项目副本,以解决问题(即所有需要的东西都被清理/更新,以便在他们的环境中工作)。我们称该版本为 A2。
工作流程通常包括与 A 和 A2 相关的两件事:
- 代码两边都可以改(即A和A2都可以改,A由原团队改,A2由外包团队改),包括有源代码变更冲突
- 有必要使这两个项目保持同步。不需要让它们一直保持同步,但重要的是要有一种相对轻松的方式来做到这一点。假设当有冲突需要解决时,这必须是一个手动过程
这个工作流程可以通过手动保留两个项目并在它们之间合并来实现。
相关问题:
- 如何使用 git 管理这两个版本,即与手动合并相比有哪些选项?
- 这是最好的设置还是有更好的选择?
- 对于新项目,将机密/特定于环境的事情排除在源代码控制之外的首选方式是什么(从某种意义上说——如果你有类似的情况,你会怎么做?)无论如何,这是一件好事吗?