Способ работы DVCS (толкание / вытягивание все репо) заставляет вас рассуждать в терминах компонента (связный набор файлов , с их собственный коммит жизненного цикла)
Ваша папка www
должна быть в вашем случае субмодулем (Git) или subRepo (Mercurial) .
Таким образом, вы сможете вытащить все.
Другое решение (если вы хотите сохранить репо таким, как есть) - это определить специальную ветку «релиз» (release_foo
для foo
), в которой вы удаляете все, кроме www
.
Когда разработка на foo
готова к выпуску, вы сливаетесь с release_foo
и удаляете на ту ветку , что вам не нужно.
Не идеальное решение, но работоспособное.
Последнее решение, которое я забыл упомянуть, доступно начиная с Git1.7:
редкая проверка
Как только репозиторий клонирован, трюк дерева чтения ограничивает ваш "просмотр" репозитория только теми файлами или каталогами, которые находятся в .git/info/sparse-checkout
файле .
В вашем случае вы могли бы просто создать один .git/info/sparse-checkout
с соответствующим каталогом, и когда вы обновляете свое рабочее дерево, появится только этот каталог (например, foo
).
Это еще одно решение, которое:
- позволяет сохранить хранилище без изменений
- избегайте любых работ по техническому обслуживанию до поставки.