2013-02-21 30 views
1

我希望能够在bzr中设置/获取与工作树相关的一些自定义属性。 当我开始在特定的工作树中构建源代码时,可以使用这些属性。例如,我们的软件使用PostgreSQL数据库实例,并且每个构建(在工作树/分支中)需要能够通过名称/主机/端口'知道'它与哪个数据库实例相关:DevDB,StableDB,StableRev010DB等。 ..Bazaar:添加WorkingTree特定元数据

我不想把任何这些属性放在bzr控制下的文件中。我已经创建了一个自定义的“make_branch.py​​”脚本,它能够从源URL创建一个工作树/分支,并且希望添加一些选项以便在创建新分支时能够设置这些自定义属性脚本。

有没有人有建议? Bzrlib文档非常全面,但似乎无法确定如何通过当前的API实现这一点。

回答

1

为什么不将元数据存储在文件中并使用bzr ignore或编辑.bzrignore来标记忽略这些文件?如果这不适合你,请解释原因。

按存储某种未版本化的属性,我见过到最接近的东西是bzr-svn文档中: http://doc.bazaar.canonical.com/migration/en/foreign/bzr-on-svn-projects.html#versioned-properties

颠覆了版本化属性的概念,是不是目前存在的集市。这意味着bzr-svn不能设置任何版本化的属性,例如:svn:keywords,svn:eol-style和svn:mime-type。

但是,bzr-svn将保留已存在于文件中的版本化属性。

也就是说,在Bazaar中没有版本化的属性,但这很好,因为你不想对它们进行版本管理。该插件保留了很多Subversion元数据,所以确实必须有API方法。但是,即使这些元数据没有版本控制,它们仍然存储在存储库中,这又不是你想要的。

我还没有阅读所有的API文档,但做了用户指南,并且肯定没有提到您正在寻找的功能。也就是说,Bazaar 非常可扩展的,所以也许有一种使用API​​的方式。

我建议在irc.freenode.net上询问IRC频道#bzr。您也可以尝试在IRC日志中搜索http://irclogs.ubuntu.com

+0

我知道该功能不存在,这就是为什么我在我的问题中提到bzrlib。 bzrlib API非常大,通过筛选非常艰巨。但正如你所提到的,我可以使用'未版本控制的'文件,尽管我认为bzr是可扩展的,可以实现我首先考虑的解决方案。 – user2095877 2013-02-21 23:49:31

+0

O我看到你愿意再往下走兔子洞。好的,我用更多的细节更新了答案。如果你想扩展Bazaar,你必须实现一个插件,但文档并不是很好。我写了一个更好的指南。我无法公开发布,但如果您有兴趣,我可以私下与您分享。 – janos 2013-02-22 07:21:37

+0

真的很想看到你的插件文档。谢谢! – user2095877 2013-02-22 16:18:39