如何在启用了git的bnd工作区中组织个人设置?

时间:2019-02-22 14:00:35

标签: git bnd bndtools

所提供的内容

假设我有一个启用了git的bnd标准工作区,如下所示:

foo.rest.application
foo.extended.provider

这取决于另一个bnd标准工作区管理的包:

foo.core.api
foo.core.provider

这些必需的分发包将发布到本地OBR存储库中。

我在寻找什么

嗯,这是一个私有的远程存储库。但是也许有一天我想发布它。由于工作区是由git管理的,所以我不想用个人数据污染远程存储库。

因此,在我依赖的工作空间中,我有一个单独的foo.repo.bnd

# /cnf/foo.repo.bnd

-plugin.1337.Foo: \
    aQute.bnd.deployer.repository.LocalIndexedRepo; \
        name = Foo; \
        local = /home/foo/developement/repositories/foo; \
        readOnly = true

/cnf/*cache, local, release除外)是我的存储库的一部分,因为它包含一些非常有用的核心存储库(特定版本的OSGi enRoute存储库)。

我到目前为止的想法

我查看了github上的一些项目,但到目前为止,我仅发现Apache Aries包含与我的问题有关的内容。在根.gitignore中有一条规则:

#.gitignore

**/personal.bnd

因此,似乎Apache Aries的家伙在此文件(或这些文件)中具有其个人设置。

所以我得出结论,最好提交一个空的personal.bnd并向后添加到.gitignore中。因此以后的git add秒中将忽略它。

/cnf/build.bnd中,我将包括personal.bnd

#/cnf/build.bnd

-include cnf/personal.bnd

您怎么说?

我认为这是迄今为止最优雅的方式。使用更新的.gitignore时,您不必担心通过计划personal.bnd意外提交git add *的情况。也许我错了,几乎没有错过任何事情。因此,我很乐意收到任何反馈。

亲切的问候!

更新

  1. 您不能保留跟踪的git文件的未跟踪版本

如果git跟踪了文件,则无法简单地从暂存中删除该文件。因此,我将空cnf/personal.bnd文件用作个人设置的虚拟文件的考虑是徒劳的。

  1. cnf / ext:多个自动选择的bnd文件

我对cnf/ext目录有更深入的了解。这似乎是要走的路。 bnd会自动将其拾取,您可以将设置拆分为多个.bnd文件。

  1. cnf / build.bnd:个人设置位置

这就是build.bnd的用途。我想我应该一言以蔽之,并从git存储库中删除build.bnd。在前言中,我将所有自动生成的设置都移到了cnf/ext中。但这有一个缺点:在构建工作区之前,必须手动添加cnf/build.bnd

0 个答案:

没有答案