Файлы подачи Apache от мерзавца repo ответвления

Там какой-либо путь состоит в том, чтобы служить файлам от ответвлений в мерзавце repo, не проверяя их в различные каталоги?

Я любил бы удобство способности создать новое ответвление, продвинуть его к тестовому серверу repo и затем сделать что-то как обзор на http://branchname.test.com. Я могу использовать, переписывают правила обработать субдомен имени ответвления для указания на различные корневые пути, но Apache не может считать пустой repos, конечно.

gitfs мог бы работать, но кажется заброшенным.

Мне особенно не нужен Apache также.

4
задан 01.02.2010, 22:51

1 ответ

Самый простой подход проверил бы каждое ответвление и создал бы клоны для каждого ответвления в подкаталогах. Очень легко сделать это со сценарием runned кроном (или в рычаге постфиксации) как:

#!/bin/sh
ROOT=/srv/repos/control
cd ${ROOT} # it's an internal repo
git fetch
for ref in .git/refs/remotes/origin/*; do
  BRANCH=`basename ${ref}`
  if ! [ -d ../${BRANCH} ]; then
    git clone --local ${ROOT} ../${BRANCH}
    cd ../${BRANCH}
    git branch --track ${BRANCH} remotes/origin/${BRANCH}
    git checkout ${BRANCH}
  else
    cd ../${BRANCH}
    git pull
  fi
done

После того, как это будет работа, Вы получите набор каталогов с ответвлениями в /srv/repos.

git clone --local очень быстро и оптимален даже на огромных репозиториях как ядро Linux, потому что оно не создает все объекты в репозитории, но вместо этого создает hardlinks им, таким образом, Вы не потратите впустую пространства на копии репозитория. Вы будете, через, ненужное пространство на проверенных копиях, но a) они являются, вероятно, не очень большими и b) это сделает веб-доступ намного легче и быстрее.

3
ответ дан 07.12.2019, 19:58

Теги

Похожие вопросы