Я пытаюсь использовать git таким образом, чтобы некоторые подкаталоги в проекте скрывались/скрывались от «ненадежных» пользователей, но были видны другим «доверенным» пользователям. Обратите внимание, что это не только защита от записи; ненадежным пользователям также не разрешается читать секретные файлы. Я бы хотел, чтобы пользователь выглядел так, как если бы это был единственный git-репо, а не что-то вроде подмодулей.скрывает часть git repo от ненадежных пользователей
Я расскажу вам свою единственную идею до сих пор, в случае, если это вызвало некоторую дискуссию или критику. Я рассматриваю возможность наличия двух параллельных репозиториев за кулисами на сервере. Доверенные пользователи клонируют/тянут/нажимают доверенное репо. Неверные пользователи клонируют/тянут/нажимают ненадежное репо. Когда выполняется фиксация доверенного репо, он фильтруется для удаления секретного содержимого перед его применением к ненадежному репо. Переход в другое направление, фиксация ненадежного репо фильтруется, чтобы избежать сглаживания секретного содержимого перед тем, как его применить к доверенному репо.
Как я должен достичь этой цели? Является ли мое предлагаемое решение безумным?
Я пошел с ответом «hack git yourself», так как это единственный, который даст простой пользовательский опыт, который я хотел. Это было непросто, и мне пришлось нанять опытного вкладчика в проект git, чтобы это произошло. Большая картинка, он сделал это с git-крючками и отдельным репозиторием для каждого набора разрешений. По крайней мере, это не требовало изменения исходного кода git. После нескольких месяцев использования он работает, и он прост для пользователей. Я волнуюсь, это может быть немного хрупким и жить в постоянном страхе перед моим следующим толчком, обращая его в недоумение. Я не могу сказать, что рекомендую этот маршрут другим, но он делает то, что я хочу. – RaveTheTadpole