Когда я конвертирую в git, как мне обработать одиночный каталог svn checkout?

Я скоро собираюсь конвертировать свою часть приложения из использования svn резервное копирование к использованию git один.

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

Один каталог моего конфигурационного репозитория всегда использовался для отслеживания каталога сценариев внешнего приложения на автономной машине с Windows. Каталог скриптов для этого приложения находится внутри каталога установки приложений, поэтому svn Я сделал проверку только этого каталога в соответствующей точке.

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

Чтобы быть явным, я хочу отобразить содержимое myrepo:config/scripts в C:\application\scripts,

Насколько я вижу, у меня есть несколько вариантов:

1. Используйте отдельный репозиторий для этих файлов скриптов.

Это, вероятно, предпочтительнее, так как позволяет мне клонировать репо в нужное место.

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

2. Используйте точки соединения.

Я мог бы поставить git рабочая копия config каталог в другом месте на C:\ а затем используйте точку соединения, чтобы каталог отображался как подкаталог каталога приложения, так же как Ger4ish предлагает использовать символические ссылки в unix.

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

Другие опции?

Интересно, есть ли варианты, которые я пропустил.

Глядя на ответы на вопрос Sparse checkout в Git 1.7.0? Я могу получить некоторые пути, но требование сохранить структуру одинаковым в сочетании с необходимостью проверки в определенной позиции означает, что этот метод не будет работать.

1 ответ

Решение

Вы смотрели на подмодули? Вы можете создать отдельный репозиторий git для своих скриптов конфигурации и добавить его в качестве подмодуля в ваш основной репозиторий. Это позволит вам сделать заказ прямо в application/scripts но по-прежнему храните каталог config в основном хранилище.

Существуют некоторые нюансы того, как подмодули связаны с основным репозиторием, поэтому вам нужно, чтобы каждый, кто фиксирует каталог скриптов, понимал этот рабочий процесс.

Другие вопросы по тегам