我目前正在尝试使用 Bazaar,试图找到一种适合我目前正在与开发团队合作的项目的配置。我们的模型目前是中心化的,但如果我能看到显着的好处,我愿意说服改变这一点。尽管提倡它,但我将无法更改版本控制系统......有些人不知道什么对他们有好处。
目前,该项目分为几层。它是一个 Web 项目,由数据访问层、业务/域逻辑层和 Web 层(以及一堆其他应用程序级项目,例如位于域上的服务)组成。
目前,我找到了一个带有许多工作树的集市存储库,其中一个用于我提到的每一层。
问题第 1 部分
是否有更好的替代方法可以在每一层的存储库中使用工作树?
我考虑过的:
- 将所有内容放入一个粗大的分支/工作树中(有人告诉我这是故意避免的,因为有必要检查所有内容)。开发人员通过检查多个存储库的子集来创建自己的本地设置。例如,如果我正在处理其中一项服务,我会将服务、业务层和数据访问层签出到本地目录。不过,在当前设置中,我可以签出一个不影响其他任何内容的顶级应用程序,对其进行更改并将其提交回来,而无需签出大小接近 1GB 的整个存储库。
我想补救的:
- 问题实际上是我的 Web 层依赖于业务层的一个版本,而业务层又依赖于数据访问层。对于这样组织的项目,我不知道哪个版本的业务和数据访问层对于 Web 层上的给定提交是最新的。这对我来说感觉非常糟糕。我希望能够检查我们的应用程序的版本,这些版本与对其中一个工作树的某些提交有关。目前,我们正试图通过标记在所有工作树中跟踪这一点,但这对我来说感觉很不对劲。
问题第 2 部分
如果我为发布分支分支其中一个层,并发现分支根目录中的更改需要在该版本中,我如何仅将那些需要的更改推送到分支中?
所以假设每个项目都存在一个工作树的结构(或者可能是一个真正的分支),我们希望每个项目都有一个分支,其中包含特定版本的版本。所以网站树有一个 website_rls1 分支,它封装了该特定版本的开发状态。后续版本的一般开发将同时进行。因此,如果多个文件中的一个恰好与此版本相关,我想将该单个文件合并到我的发布分支中。这样做的首选方法是什么。据我了解,Bazaar 不支持合并/拉取单个文件。
我所考虑的:
- 只需将我想要的文件放入发布分支的本地结帐并提交
我想补救的:
- 遵循此考虑将取消此文件的版本信息。我想保持版本信息完整,但只合并更改的子集。我本质上想将单个文件推送到子分支,或者类似的东西。
任何想法表示赞赏。