отфильтрованная версия репозитория git - PullRequest
2 голосов
/ 30 августа 2011

У меня есть проблема, когда нам нужно предоставить отфильтрованную версию нашего git-репозитория стороннему специалисту.

Поэтому нам нужно поддерживать версию нашего git-репозитория, в которой определенные ключевые слова найдены и заменены чем-то другим.

Причина этого в том, что мы не хотим, чтобы аутсорсеры вставляли код на форумах с именами наших клиентов, как это было в прошлом.

Было бы здорово, если бы git мог выставлять что-то подобное на лету, но я думаю, что это невозможно, потому что это изменило бы все идентификаторы SHA.

Полагаю, решение состоит в том, чтобы иметь 2 отдельных репозитория git, которые каким-то образом синхронизируются. Синхронизация должна быть двухсторонней. Таким образом, когда мы вносим изменения в кодовую базу, эти изменения переносятся в отфильтрованную кодовую базу (и фильтруются по пути), и если аутсорсеры вносят изменения, эти изменения переносятся в наш репозиторий, но не возвращаются обратно. 1009 *

Возможно, мы могли бы что-то испортить, собирать вишню и т. Д. Но я думаю, что было бы немного потрудиться, чтобы сделать это надежным. Я полагаю, концептуально это похоже на git-svn.

Существуют ли инструменты, которые могли бы привести к такому результату?

1 Ответ

1 голос
/ 30 августа 2011

Как Оуэн упоминает в комментариях, и как я иллюстрировал в ответ , на который он ссылается, это работа для драйвера фильтра .

filter driver

В вашем случае вы бы:

  • имели специальную ветку, в которой атрибут git объявляет outsourcerscript
  • поддерживать в этой ветке внешний скрипт, способный заменить эти ключевые слова
  • объединить вашу работу, а затем оформить эту ветку, чтобы получить отфильтрованное рабочее дерево
  • добавить содержимое этого рабочего дерева в вашеОтдельное хранилище необходимо сообщить аутсорсеру.

Для изменений, поступающих от аутсорсера, вы добавляете их в ветку импорта, где скрипт clean при фиксации восстановит правильные ключевые слова.
И затем вы объединяете эту ветку импорта с вашей обычной рабочей веткой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...