Ho una directory del sito Web con versione git. Uso i sottomoduli per le librerie richieste come Twitter Bootstrap, colorbox e lessjs perché non dovrei monitorare il codice sorgente ma solo la versione del codice che uso.Esportazione archivio git con sottomoduli (git archive all/recursive)
Ora voglio distribuire il progetto e quindi ho bisogno anche del codice del sottomodulo. Usando git archive
Non ottengo il codice sorgente/codice dai sottomoduli.
I seguenti tre approcci cercare di ottenere quello che voglio, ma Dont't lavoro: primo approccio
#!/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"
Thomas Rast in http://git.661346.n2.nabble.com/Running-git-archive-recursively-over-submodules-td4577012.html
Questo mi dà errori sia in Windows come in Linux che non ci sono file di oggetti trovati.
secondo approccio https://github.com/meitar/git-archive-all.sh
lamenta mktemp non trovato su Windows. E correggere le chiamate a git archive
(da git-archive
) non dà sottomoduli nella tar ... :(
terzo approccio https://github.com/Kentzo/git-archive-all
non è aggiornato dal mio punto di vista da non essere compatibile con ultimo python 3.3 e ancora non completamente funzionante utilizzando 2,7 perché samefile lamenta
Quindi la mia domanda è ora:. c'è un recente modo/metodo di trattare con l'esportazione/archiviare un progetto Git compreso sottomoduli
?Oppure devo controllare i sottoalberi per questo flusso di lavoro?
Grazie in anticipo
Sono l'autore di Kentzo/git-archive-all. È compatibile con Python 3.3 ora. Qual è l'altro problema? – Kentzo