所提供的内容
假设我有一个启用了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 *
的情况。也许我错了,几乎没有错过任何事情。因此,我很乐意收到任何反馈。
亲切的问候!
更新
如果git跟踪了文件,则无法简单地从暂存中删除该文件。因此,我将空cnf/personal.bnd
文件用作个人设置的虚拟文件的考虑是徒劳的。
我对cnf/ext
目录有更深入的了解。这似乎是要走的路。 bnd会自动将其拾取,您可以将设置拆分为多个.bnd文件。
这就是build.bnd
的用途。我想我应该一言以蔽之,并从git存储库中删除build.bnd
。在前言中,我将所有自动生成的设置都移到了cnf/ext
中。但这有一个缺点:在构建工作区之前,必须手动添加cnf/build.bnd
。