Как организовать персональные настройки в рабочей среде с поддержкой git?
Что дано
Допустим, у меня есть стандартное рабочее пространство с поддержкой git:
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
aftwards. так что это будет игнорироваться будущим git add
s.
В /cnf/build.bnd
Я бы включил personal.bnd
:
#/cnf/build.bnd
-include cnf/personal.bnd
Что ты сказал?
Я думаю, что это самый элегантный способ до сих пор. С обновленным .gitignore
Вам не нужно беспокоиться о совершении personal.bnd
случайно по расписанию git add *
, Может я ошибаюсь и что-то упустил вряд ли. Поэтому я бы с удовольствием принял любые отзывы.
С уважением!
Обновления
- Вы не можете сохранить неотслеживаемую версию отслеживаемого git-файла.
Если файл отслеживается с помощью git, вы просто не можете просто удалить файл из промежуточной версии. Так что мои соображения относительно пустого cnf/personal.bnd
файл как фиктивный файл для личных настроек тупиковый.
- cnf / ext: несколько автоматически выбранных bnd-файлов
Я посмотрел глубже на cnf/ext
каталог. Это, кажется, путь. Он автоматически выбирается bnd, и вы можете разделить настройки на несколько файлов.bnd.
- cnf / build.bnd: место для ваших личных настроек
Это то, что build.bnd
предназначен для. Я думаю, что я должен взять их словом и удалить build.bnd
из хранилища git. В предисловии я перенес все автоматически созданные настройки в cnf/ext
, Но это имеет небольшой недостаток: прежде чем вы сможете построить рабочее пространство, вы должны добавить cnf/build.bnd
вручную.