]> git.decadent.org.uk Git - dak.git/blobdiff - config/debian/dinstall.functions
pdiff shit
[dak.git] / config / debian / dinstall.functions
index 172d6e40e41899b9d37ffb2190bb7a218228f5f9..ffbbb545544f18ce020d04901e733cd2b0666bc1 100644 (file)
@@ -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}"
+ }