From 282d26ee589fff0d202862d15039e735449d52e8 Mon Sep 17 00:00:00 2001 From: Joerg Jaspert Date: Sun, 8 May 2011 17:41:15 +0200 Subject: [PATCH] pdiff shit add a function to fill up a git tree for the possible replacement of the shit script thats currently creating pdiff files Signed-off-by: Joerg Jaspert --- config/debian/cron.dinstall | 10 ++++++++-- config/debian/dinstall.functions | 33 ++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/config/debian/cron.dinstall b/config/debian/cron.dinstall index ca8202aa..9261452d 100755 --- a/config/debian/cron.dinstall +++ b/config/debian/cron.dinstall @@ -288,8 +288,6 @@ GO=( ARGS="" ERR="" ) -# Careful: When we ever go and remove this monster-long thing, we have to check the backgrounded -# functions before it. We no longer have a 1.5hour sync point then. stage $GO state "dists/" @@ -301,6 +299,14 @@ GO=( ) stage $GO +GO=( + FUNC="gitpdiff" + TIME="gitpdiff" + ARGS="" + ERR="" +) +stage $GO + GO=( FUNC="release" TIME="release files" diff --git a/config/debian/dinstall.functions b/config/debian/dinstall.functions index 172d6e40..ffbbb545 100644 --- a/config/debian/dinstall.functions +++ b/config/debian/dinstall.functions @@ -575,3 +575,36 @@ function changelogs() { rsync -aHW --delete --delete-after --ignore-errors ${exportdir}/changelogs/. . sudo -H -u archvsync /home/archvsync/runmirrors metaftpdo > ~dak/runmirrors-metadata.log 2>&1 & } + +function gitpdiff() { + # Might be that we want to change this to have more than one git repository. + # Advantage of one is that we do not need much space in terms of storage in git itself, + # git gc is pretty good on our input. + # But it might be faster. Well, lets test. + log "Adjusting the git tree for pdiffs" + cd ${dbdir}/git/git/ + + # The regex needs the architectures seperated with \| + garchs=$(dak admin a list|sed -e ':q;N;s/\n/\\|/g;t q') + + # First, get all the files we want to work on. ../dists/ is a symlink to the real dists/ we + # want to work with. + # Also, we only want contents, packages and sources. + for file in $(find ../dists/ -regex ".*/\(Contents-\($archs\)\|\(Packages\|Sources\)\).gz"); do + log "${file}" + base=${file%%.gz}; + base=${base##../}; + dir=${base%/*}; + mkdir -p $dir; + zcat $file > $foo; + done + + # Second, add all there is into git + cd dists + git add . + # Maybe we want to make this the same for tag and commit? But well, shouldn't matter + COMD=$(date -Is) + TAGD=$(date +%Y-%m-%d-%H-%M) + git commit -m "Commit of ${COMD}" + git tag "${TAGD}" + } -- 2.39.2