拉/推/合并改变了Bazaar的分支

时间:2012-04-10 16:41:52

标签: bazaar

我正在尝试使用Bazaar,试图找到一个适合我正在与一个开发团队合作的项目的配置。我们的模型目前是集中的,但如果我能看到显着的好处,我愿意接受改变。尽管提倡它,但我无法改变版本控制系统......有些人不知道对他们有什么好处。

目前,该项目分为几层。它是一个Web项目,由数据访问层,业务/域逻辑层和Web层(以及一组其他应用程序级项目,如位于域中的服务)组成。

目前我找到了一个集市仓库,里面有许多工作树,每个层面都有一个。

问题第1部分

是否有更好的替代方法在每个层的存储库中使用工作树?

我考虑的是

  • 将所有东西放入一个胖树枝/工作树(我被告知这是故意避免的,因为有必要检查一切)。开发人员通过签出多个存储库的子集来创建自己的本地设置。例如,如果我正在处理其中一项服务,我会将服务,业务层和数据访问层签出到本地目录。在当前的设置中,我可以签出一个不影响其他任何内容的顶层应用程序,对其进行更改并将其提交回来,而无需检查整个存储库,其大小接近1GB。

我想要解决的问题

  • 问题是我的网络层依赖于某个版本 业务层,而后者又依赖于数据访问层。 有了像这样组织的项目,我不知道哪个版本 业务和数据访问层对于给定的提交是最新的 在网络层。这对我来说非常糟糕。我希望能够 我们的应用程序的签出版本相对于一些提交到一个 工作树木。目前我们正试图跟踪 这标志着所有的工作树,但感觉 我错了。

问题第2部分

如果我将这些层中的一个分支用于发布分支,并且发现分支根目录中的更改需要在该发行版中,那么如何仅将所需的更改推送到分支中?

因此,假设每个项目都存在一个工作树(或可能是真正的分支)的结构,我们希望为每个项目都有一个分支,其中包含特定版本的版本。因此,网站树有一个website_rls1分支,它封装了该特定版本的开发状态。稍后发布的一般开发将同时发生。因此,如果许多文件中的一个文件恰好与此版本相关,我想将该单个文件合并到我的发布分支中。这样做的首选方法是什么。据我了解,Bazaar不支持合并/提取单个文件。

我考虑过的事项:

  • 只需将我想要的文件放入发布分支的本地结帐并提交
  • 即可

我想补救的是什么:

  • 在此考虑之后将取消此文件的版本信息。我希望保持版本信息,但只合并一部分更改。我基本上想要将单个文件推送到子分支,或其他东西,以实现。
  • 的效果

任何想法都赞赏。

1 个答案:

答案 0 :(得分:2)

#1 有两个用于管理多个相关bzr存储库的插件:

  1. https://launchpad.net/bzr-externals
  2. https://launchpad.net/bzr-scmproj
  3. 他们有不同的方法,适合不同的情况。

    您可能还想考虑在构建级别解决此问题。使用像Jenkins这样的持续集成系统和像Ivy或Maven这样的依赖性解析系统。 QA应该使用此系统中的自动构建来完成,以便提交的错误可以引用特定的构建号,该构建号应该在其日志中包含用于生成该构建的各种依赖项的版本。


    #2 没有办法合并。 Bazaar没有追踪樱桃选择合并(尚未)。更好的方法是在发布分支中创建原始修复,然后将其合并回其父级。