gitでバージョン管理されたWebサイトディレクトリがあります。ソースコードを追跡するのではなく、使用するコードのバージョンのみを追跡する必要があるため、Twitter Bootstrap、colorbox、lessjsなどの必要なライブラリにサブモジュールを使用します。
プロジェクトをデプロイしたいので、サブモジュールコードも必要です。を使用するgit archive
と、サブモジュールからソースファイル/コードを取得できません。
次の3つのアプローチは、私が望んでいることを達成しようとしますが、機能しません。 最初のアプローチ
#!/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のThomasRast
これにより、WindowsとLinuxの両方で、オブジェクトファイルが見つからないというエラーが発生します。
2番目のアプローチ https://github.com/meitar/git-archive-all.sh
Windowsでmktempが見つからないことについて文句を言います。git archive
そして、 (から)への呼び出しを修正git-archive
しても、tarにサブモジュールは与えられません... :(
3番目のアプローチ https://github.com/Kentzo/git-archive-all
最新のPython3.3と互換性がなく、samefileが文句を言うため、2.7を使用しても完全に機能しないため、私の観点からは時代遅れです。
だから私の質問は今です:サブモジュールを含むgitプロジェクトのエクスポート/アーカイブに対処するための最近の方法/アプローチはありますか?
または、このワークフローのサブツリーを確認する必要がありますか?
前もって感謝します