Создание Mercurial субпозитариев, сохраняя при этом историю
Я собираюсь внести некоторые серьезные изменения в мои хранилища Mercurial. Поскольку я собираюсь использовать функцию "Последнее прибежище", я ищу несколько советов и заверений, что я не делаю глупостей.
Где я:
У меня есть репозиторий Mercurial с полной историей всех этих файлов:
/source
/secret_subsystem
/unclassified_subsystem
/common_files
Источник - хранилище Mercurial. Папка секретной подсистемы содержит код, который является интеллектуальной собственностью, которую мы хотим хранить внутри компании. Папка неклассифицированной подсистемы содержит код, который мы хотим передать сторонней организации для поддержки. Папка общих файлов содержит код, от которого зависят обе подсистемы. Мы будем сохранять право собственности, но мы хотим поделиться им с третьей стороной.
Очевидно, я не могу просто отправить весь свой репозиторий в стороннюю компанию. Сторонний видел бы слишком много.
Где я хочу быть:
Читая о репозиториях, вот где я думаю, что мне нужно быть:
Имейте ТРИ подкаталога: secret_subsystem, unclassified_subsystem, common_files. Убедитесь, что на уровне / source нет других файлов, благодаря этой рекомендации.
Пусть аутсорсеры создадут новый репозиторий на уровне источника на своих машинах и два соответствующих субпозитария.
Выдвиньте unclassified_subsystem и common_files в out-sourcer, вытягивая unclassified_subsystem по мере необходимости, выталкивая новые репозитории common_files по мере необходимости.
Ведение истории:
Я хотел бы сохранить историю коммитов, насколько это практически возможно, для всех подсистем.
Для этого я буду трижды запускать команду расширения hg convert, по одному разу для каждого подкаталога. Я отфильтрую только файлы, которые принадлежат каждому подкаталогу. Мне также может понадобиться сопоставить имена файлов, чтобы переместить файлы из./common_files/foo.py в./foo.py (например).
Мои вопросы:
1) Разделяет ли репозиторий на субрепозиторий разумным способом обеспечения безопасности - а именно. что сторонний может видеть и редактировать только некоторые из наших файлов?
2) Использует hg convert
разумный способ создать суб-репозиторий из существующего репозитория, сохраняя при этом историю?
3) Будет hg convert
Фильтр убирает (а) все фиксирует сообщения о файлах НЕ в отфильтрованном репозитории? Будет ли он отфильтровывать все различия для файлов НЕ в отфильтрованном хранилище?
Есть еще один подразумеваемый вопрос: я направляюсь в мир боли? Если это так, я просто откажусь от сохранения истории файлов или даже сделаю их отдельными репозиториями и забуду о коммитах между репозиториями.
1 ответ
Я не использовал подпункты до сих пор, но я могу ответить на 2) и 3):
2) Да, звучит разумно.
3) Да.
Подобный вопрос возник всего 2 дня назад: преобразовать ртутный репозиторий в субпозитории с полной историей (например, hg log -f)