Bazaar 2.x VCS会出现什么问题?

时间:2012-01-23 15:00:26

标签: dvcs bazaar

我们即将从CVS迁移到Bazaar。

在比较git,hg和bzr的功能后,在我看来他们的能力是相似的。 Bazaar 2.x benchmarks表明其存储大小和速度介于git和hg之间。

另一方面,大多数人选择git或hg(according to ohloh只有<0.5%的开源项目使用Bazaar),所以我对Bazaar有点怀疑。

使用Bazaar时我们应该遇到什么问题?

(到目前为止,我遇到了一个问题:找到类似于gig的tig键盘操作的GUI。我还没找到。)

2 个答案:

答案 0 :(得分:3)

我一直很高兴使用Bazaar,但我对其他VCS没有太多经验。我的用例是一个ASP.NET / C#/ T-SQL专有的Web应用程序,只有一小组开发人员。

我希望你会有一些成长的烦恼从集中式VCS转移到分散式VCS,尽管你可以通过使用集中式工作流来缓解那些使用Bazaar的人。

关于键盘操作GUI的问题,我倾向于使用Bazaar主要来自命令行(使用Powershell)。但是,我发现有一些操作(详细的日志读取,差异,注释)更容易用于GUI。

qbzr插件允许我从命令行启动特定任务的GUI。在大多数情况下,这只是意味着在命令前添加一个“q”。

例如,在工作树上尝试使用更改bzr qdiff。 Bazaar Explorer中提供的大多数工具都只是qbzr工具。

答案 1 :(得分:2)

这取决于你对“问题”的理解。有些人在日常工作中使用bzr,从未遇到任何使他们的工作变得不可能或非常困难的问题。这并不意味着bzr中没有奇怪的特征或怪癖。如果您了解自己在做什么,这意味着您可以轻松使用bzr。

一般来说,bzr非常适合使用VCS,但要有效地使用它,你最好知道你的限制。

如果您将开始使用bzr,您应该了解分支,存储库,共享存储库和工作树之间的区别。共享存储库如何帮助您完成工作以及如何在其中保留分支。您应该了解普通分支和结帐/轻量级结账之间的区别。如果您想继续使用CVS样式,您可能希望使用轻量级检出 - 这可以直接模拟CVS检出和计算机上的本地工作空间。

使用bzr,您可能会发现有点不清楚如何设置中央服务器并为您团队的所有成员设置适当的访问权限。当然这是可行的,官方文档有一些例子。但正确的ACL将需要* -nix ssh工具的大力帮助。

您应该理解,使用bzr时,引用某些修订版的最简单方法是使用其修订版号。但是你应该知道这个数字特定于特定的分支,并且不同的分支可能具有相同的数字N,指的是不同的修订版本。因此,有时您需要使用bzr中存在的唯一修订标识符,但该修订版ID不是与bzr通信的默认方式,因为它很长并且不能轻易缩短为8个左右的字符,如git / hg。修订号由主线概念决定,见下文。

截至2012年1月,您可能会遇到以下限制。

使用bzr,您将被迫使用历史的主线概念。即修订版的左侧父级是特殊的,并形成历史记录的主线,而合并的修订版则构成合并历史记录。默认情况下,控制台bzr log会显示主线历史记录,因为显示合并修订版的完整历史记录对于真正重要的历史记录来说可能会慢一点。

使用bzr,您将不再支持文件副本,即继续保留现有文件历史记录的新文件。

使用bzr,您将无法支持CVS“模块”作为核心功能。但是可以通过使用特殊的插件(参见bzr-externals或scmproj)来模拟它,为你做大项目配置工作。

列表不满,但这就是不时影响我作为长期bzr用户的个人。

最后一个注释。 bzr的主要问题是:几乎所有使用git或hg的人每次都会问你:“为什么你选择Bazaar,当他们公司的所有人都使用git(或hg)”时。

事实是,如果您将计算在GitHub上托管的项目数量,那么git在2012年1月与其他DVCS(git,hg,bzr等)之间显然是赢家。而且不仅因为git优越,而且因为GitHub也很优秀。

(git用户请注意:我尊重git,但是使用bzr作为我自己的选择。请不要解释为什么你认为git是好的,请。)