Часть моего (GitLab) сайта Pelican посвящена теме пеликанов. Какой самый лучший способ установить эту тему в моем проекте?

Я создаю сайт пеликана, размещенный на gitlab. Я хочу, чтобы на этом сайте использовалась тема пеликана. (Разрабатываемый сайт в настоящее время можно увидеть по адресу http://jerrya.gitlab.io/heuristk)

Многие темы пеликанов кажутся подкаталогами огромного репозитория пеликанов git https://github.com/getpelican/pelican-themes. В этом случае я хочу использовать тему zurb-F5-basic. https://github.com/getpelican/pelican-themes/tree/master/zurb-F5-basic, но я не хочу устанавливать КАЖДУЮ тему пеликана.

Я хотел бы установить его в своем репо как-то вроде:

эвристика/контент/тема/zurb-F5-basic

и команды git, выполненные в эвристике/контенте/теме/zurb-F5-basic, относятся к репозиторию темы pelican

в то время как команды git, выполненные в эвристике/контенте/ и эвристике, относятся к моему репозиторию сайта gitlab.

Как мне установить тему пеликана на моем сайте пеликана, чтобы:

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

person Jerry Asher    schedule 21.06.2016    source источник


Ответы (1)


Я думаю, что то, чего вы хотите достичь, невозможно. По крайней мере, не совсем так.

У Git есть две функции, которые позволяют вам как-то обрезать репозиторий.

Во-первых, вы можете делать shallow клонов, которые ограничены размером истории репозитория.

Во-вторых, есть так называемые sparse checkouts. Разреженная проверка — это, по сути, ограниченное представление содержимого репозиториев в вашем рабочем каталоге. Насколько я понимаю, при этом вы в основном выбираете, какие части репозитория должны быть представлены вам в вашем рабочем каталоге. Однако весь репозиторий по-прежнему находится в фоновом режиме.

Я думаю, что sparse checkouts - это то, что вам нужно, если вы хотите достичь чего-то, близкого к желаемой структуре. Единственная разница в том, что между ними будет одна папка:

эвристика/контент/тема/pt/zurb-F5-basic

Здесь pt является репозиторием тем pelican в качестве подмодуля к вашему репозиторию GitLab, но настроенным таким образом, что он предоставляет только одну подпапку, а именно «zurb-F5-basic».

# create the submodule
$ git submodule add https://github.com/getpelican/pelican-themes heuristic/content/theme/pt
$ cd heuristic/content/theme/pt
# activate sparse checkouts
$ git config core.sparsecheckout true
# define which file(s) should be shown in the working directory
$ echo "zurb-F5-basic" >> ../../../../.git/modules/heuristic/content/theme/pt/info/sparse-checkout
# apply the "filter"
$ git read-tree -mu HEAD
$ ls
zurb-F5-basic

Общий:

  1. Да
  2. Да
  3. В зависимости от вашего определения установки, я бы сказал: Нет
person Michael Hoff    schedule 28.06.2016
comment
Спасибо, это полезно. Моя проблема с проверкой всей истории или всего проекта тратит дисковое пространство gitlab. Я не уверен, зачем мне нужна история файлов, которые я не проверил... но ладно. - person Jerry Asher; 30.06.2016
comment
Вы можете избежать проверки всей истории проекта, используя неглубокие клоны. Указав глубину n, например. --depth 1 при проверке проекта вы ограничиваете локальный клон последними коммитами n. Это означает, что вы действительно экономите место на диске. Проверка реальности: я только что проверил это сам, 59 МБ против 54 МБ, когда только проверял последний коммит репозитория тем pelican. Я полагаю, что git хорошо справляется со сжатием этих примерно 800 коммитов. Но все же с мелкими копиями можно сэкономить место! - person Michael Hoff; 30.06.2016
comment
Я хотел бы добавить, что в репозитории тем действительно много подмодулей. Ваша тема является исключением из этого. Если бы вы выбрали другую тему, которая на самом деле предоставляется подмодулем, вы, конечно, могли бы просто добавить соответствующий репозиторий в свой пеликан, и все в порядке. - person Michael Hoff; 30.06.2016
comment
Является ли это ответом на ваш вопрос? - person Michael Hoff; 15.07.2016