У меня есть каталог веб-сайтов с версией git. Я использую подмодули для требуемых библиотек, таких как Twitter Bootstrap, colorbox и lessjs, потому что я не должен отслеживать исходный код, а только версию своего кода, который я использую.
Теперь я хочу развернуть проект, и поэтому мне тоже нужен код подмодуля.
Используя git archive
, я не получаю исходные файлы/код из подмодулей.
Следующие три подхода TRY для достижения того, что я хочу, но не работают: 1-й подход
#!/bin/sh
export revision="$1"
export GIT_INDEX_FILE=".git/tmpindex"
rm -f "$GIT_INDEX_FILE"
git read-tree $revision
export up="$(pwd)"
read_one_level () {
export GIT_ALTERNATE_OBJECT_DIRECTORIES="$GIT_ALTERNATE_OBJECT_DIRECTORIES":$(
git submodule foreach 'echo "$up/$path/.git/objects"' |
grep -E -v '^(Entering|No submodule mapping found)' |
tr '\n' : |
sed 's/:$//'
)
git submodule foreach '
cd "$up"
subcommit=$(git rev-parse :"$path")
git rm --cached "$path"
git read-tree -i --prefix="$path/" $subcommit
' >/dev/null
}
while git ls-files -s | grep -q ^160000; do
read_one_level
done
git archive --format=tar $(git write-tree)
rm -f "$GIT_INDEX_FILE"
Томас Раст в http://git.661346.n2.nabble.com/Running-git-archive-recursively-over-submodules-td4577012.html
Это дает мне ошибки как в Windows, так и в Linux, что нет файлов объектов.
Второй подход https://github.com/meitar/git-archive-all.sh
Жалобы на mktemp не найдены в Windows. И исправление вызовов git archive
(от git-archive
) не дает подмодулей в tar...: (
3-й подход https://github.com/Kentzo/git-archive-all
Я устарел с моей точки зрения, не будучи совместимым с последним python 3.3 и все еще не полностью работая, используя 2.7, потому что тот же файл жалуется.
Итак, мой вопрос: Есть ли какой-либо недавний способ/подход к экспорту/архивированию проекта git, включая подмодули?
Или нужно проверить поддеревья для этого рабочего процесса?
Заранее спасибо