Git рабочие деревья только для чтения из существующих путей - PullRequest
0 голосов
/ 11 января 2019

Программное обеспечение, с которым я работаю, организует свои файлы в различных средах под экземплярами. Вызывая среды 'Env-A', 'Env-B' для данного экземпляра, структура каталога тогда:

Instance
 - Env-A
   - src
 - Env-B
   - src

Эти среды похожи на ветки в системе контроля версий, и я пытаюсь управлять ими как таковой с помощью Git.

Важно отметить, что исходные файлы можно редактировать только из программного обеспечения; дополнительная ценность использования VCS состоит в том, чтобы иметь возможность сравнивать среды и вести только историю. В частности, было бы невозможно заполнить src в Env-B из Git.

То, чего я пытался добиться, - это иметь один репозиторий для каждого экземпляра с рабочими деревьями, соответствующими средам.
Чего я не понимаю, так это как добавить рабочее дерево в хранилище, используя существующий путь.

Я изначально создал хранилище с помощью:

git --work-tree=/Instance/Env-A/src --git-dir=/src/instance.git init

Когда я пытаюсь добавить рабочее дерево в этот репозиторий, используя:

cd /src/instance.git
git worktree add /Instance/Env-B/src Env-B

Я получаю сообщение об ошибке fatal: '/Instance/Env-B/src' already exists, которое, как я понимаю, ожидается, поскольку Git хочет продублировать извлеченные файлы (то есть содержимое /Instance/Env-A/src) по указанному пути.

Я подумал о двух следующих способах получить похожий результат:

  • создайте новое рабочее дерево по другому пути, позволяя Git скопировать файлы, а затем замените этот путь символической ссылкой на /Instance/Env-B/src;
  • создать один репозиторий для каждой среды, а затем перетащить их в другой репозиторий как разные ветви.

Я еще не пробовал эти идеи, поскольку у меня есть ощущение, что вариант, который я искал до сих пор, был бы чище.

Таким образом, вопрос сводится к тому, возможно ли добавить рабочее дерево в репозиторий, используя существующий путь (содержащий файлы, похожие на извлеченные файлы, но не полностью совпадающие с ними)?

...