Bazaar

Bazaar

 




Wiki Tools

  • Find Page
  • Recent Changes
  • Page History
  • Attachments

参考自: {en} Workflows v12

( 注意中文页面必须在页面名称前添加 'zh/', 如: zh/安装)

基于bzr的工作方式

status

草稿

ZoomQuiet:2%

Bazaar 支持许多不同的工作方式(workflow), 而不是坚持要求你只使用一种方式。不存在唯一正确的方式:最好的工作方式取决于很多因素,如你的团队大小等。以下列出了一些常用的工作方式。

单人方式

无论是开发软件,编辑文档,还是修改配置文件,一个简单易用的 VCS 工具(版本控制系统)都能带来很大帮助。如果一个单独的用户是整个项目唯一的开发者,就可以使用本工作方式来有效的管理项目。

与不使用版本控制相比的优势:可以备份旧版本、回滚到以前的状态、追踪修改历史。

Bazaar 在本工作方式下的关键特性是较低的管理员权限需求(不需要配置服务器软件)和简单易用。

搭档方式

有时候两个人需要一起同时工作,并互相共享他们各自的修改。这种情况通常开始于单人工作方式(见上一小节)或面向团队的工作方式(见下一小节)。同样的,第二个用户可以获取一个分支(branch - 包含历史数据的复制品),该分支含有第一个用户已完成的工作。两人可以同时工作,并在合适的时候通过合并(merge)操作互相交换修改的数据。

单人相比的优势:

  • 更易于共享修改
  • 每个文本文件的每一行修改都可以标记上是谁在何时为何原因作了修改。

与 CVS 和 Subversion 相比,Bazaar 实现本工作方式的优势包括:

  • 无需配置服务器
  • 智能合并使得多次合并不再痛苦

集中方式

也称为 锁步(lock-step),基本上与 CVS 和 Subversion 推荐并强制使用的工作方式相同。所有的开发者都工作在同一个(或多个)分支上。运行 "bzr update" 使导出的数据更新到最新版本,运行 "bzr commit" 来提交改动。

Subversion 和 CVS 是实现本工作方式很好的选择,因为它们很简便。与其它大部分分布式 VCS 工具不同,Bazaar 直接支持本工作方式,因而也很简便。此外,Bazaar 与 CVS 和 Subversion 相比,提供了一些重要的优势:

  • 更好的分支与合并操作
  • 更好的重命名支持

可本地提交的集中方式

本方式基本上与 集中方式 相同,只是当开发者要做一系列修改时,需要运行 "commit --local",或将导出的数据取消绑定(unbind),当全部工作完成后再一次性提交到共享的主线分支里。

集中方式 相比的优势:

  • 可以离线工作,比如在旅行时无法连网
  • 尽量避免有问题的提交影响其他所有人的工作

Subversion 和 CVS 不支持本工作方式。其他分布式 VCS 工具可以支持,但没有 Bazaar 这样直接。

共享主线(mainline)的非集中方式

本工作方式下,每个开发者有他们自己的一个或多个分支,并拥有提交到主分支的权限。开发者在自己的个人分支里工作,完成后再合并到主线分支。

可本地提交的集中方式 相比的优势:

  • 更便于组织工作 - 每个自己的分支里可以做独立的修改
  • 当某部分需要合作开发时,可以合并其他人的个人分支

Subversion 和 CVS 不支持本方式。其他分布式 VCS 工具支持。在为本工作方式选择分布式 VCS 工具时,用户们寻求的易于使用、高质量合并、优秀的重命名支持、高效存储(如共享数据仓库(repository))等特性,都是Bazaar的强项。

人工把关(gatekeeper)的非集中方式

本工作方式下,每个开发者都有自己的一个或多个分支,并拥有主分支的只读权限。只有一个开发者(gatekeeper - 把关者)拥有提交到主分支的权限。当开发者想要他的修改被合并时,可以请求把关者来进行合并。把关者进行代码复查,如果满足要求的话即可将修改合并到主分支。

共享主线的非集中方式 相比的优势:

  • 代码在进入主线之前已经被复查过

Bazaar 的一个配套工具 Bundle Buggy 可方便的追踪需要复查的代码改动,以及复查状态和复查评论。Subversion 和 CVS 不支持本方式。其他分布式 VCS 工具可以支持。在为本工作方式选择分布式 VCS 工具时,用户们同样会寻求易于使用、高质量合并、优秀的重命名支持、高效存储等特性。

自动把关(gatekeeper)的非集中方式

本工作方式下,每个开发者都有自己的一个或多个分支,并拥有主分支的只读权限。只有一个把关软件(如 PQM)拥有提交到主分支的权限。当开发者想要他的修改被合并时,可以请求另一个开发者进行代码复查。如果通过了复查,原作者或复查者即可请求把关软件将修改合并到主分支,可根据团队政策来安排。把关软件完成合并、编译、运行测试用例等工作,如果代码提供了测试,即可被合并进主线。

注意:作为可选方案,作者可以略过复查步骤直接提交改动给把关软件。(这适合于高效率的结对编程等情况 - 编写代码的同时就在复查,不需要单独的复查步骤)

人工把关的非集中方式 相比的优势:

  • 代码在进入主线之前已经被测试过 (这样主线分支的完整性更高)
  • 团队扩大时也没问题

Bazaar 的一个配套工具 Patch Queue Manager (PQM) 可以提供自动把关软件的功能。此外,人工把关的非集中方式里提到的工具也适用。

注意

Bazaar 的一个伟大功能就是可以适应各种不同的工作方式。各种工作方式可以按照需要进行改变、混合。例如,一个团队决定使用传统的 集中方式 工作,但又以 合作伙伴 的形式进行补充,即两个额外的开发人员在与团队合作工作时可以直接互相交换代码改动。

工作方式基本上与数据存储方式无关。如果你想确保全部分支都保存在一个中心位置,以下方法可以实现:将修改都推送(push)到一个有备份的中心服务器。在许多使用集中式 VCS 工具的团队,开发者都知道通过提交修改让代码就可以被 安全备份 设置检查点,这样以后即可返回之前的代码状态。使用分布式 VCS 工具,这些目标同样可以实现,但 不需要 在不必要的时候就将代码提交到主线分支。

Bazaar 的开发者使用 自动把关的非集中方式 来开发 Bazaar 自身。

以上的 PNG 和 SVG 格式图片作为本页附件可供下载。