summaryrefslogtreecommitdiff
path: root/git-deltafy-script
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-06-27 10:33:33 (GMT)
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-27 22:27:51 (GMT)
commitc4584ae3fd7cd595a638a07dfd853e9d2745e930 (patch)
tree735d3d7612055565941f98219ff862ce24ef2c78 /git-deltafy-script
parentee85cbc6887d6ae4eb09a3e2c7319f66ae7c9034 (diff)
downloadgit-c4584ae3fd7cd595a638a07dfd853e9d2745e930.zip
git-c4584ae3fd7cd595a638a07dfd853e9d2745e930.tar.gz
git-c4584ae3fd7cd595a638a07dfd853e9d2745e930.tar.bz2
[PATCH] Remove "delta" object representation.
Packed delta files created by git-pack-objects seems to be the way to go, and existing "delta" object handling code has exposed the object representation details to too many places. Remove it while we refactor code to come up with a proper interface in sha1_file.c. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'git-deltafy-script')
-rwxr-xr-xgit-deltafy-script81
1 files changed, 0 insertions, 81 deletions
diff --git a/git-deltafy-script b/git-deltafy-script
deleted file mode 100755
index 476d879..0000000
--- a/git-deltafy-script
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/bash
-
-# Example script to deltify an entire GIT repository based on the commit list.
-# The most recent version of a file is the reference and previous versions
-# are made delta against the best earlier version available. And so on for
-# successive versions going back in time. This way the increasing delta
-# overhead is pushed towards older versions of any given file.
-#
-# The -d argument allows to provide a limit on the delta chain depth.
-# If 0 is passed then everything is undeltafied. Limiting the delta
-# depth is meaningful for subsequent access performance to old revisions.
-# A value of 16 might be a good compromize between performance and good
-# space saving. Current default is unbounded.
-#
-# The --max-behind=30 argument is passed to git-mkdelta so to keep
-# combinations and memory usage bounded a bit. If you have lots of memory
-# and CPU power you may remove it (or set to 0) to let git-mkdelta find the
-# best delta match regardless of the number of revisions for a given file.
-# You can also make the value smaller to make it faster and less
-# memory hungry. A value of 5 ought to still give pretty good results.
-# When set to 0 or ommitted then look behind is unbounded. Note that
-# git-mkdelta might die with a segmentation fault in that case if it
-# runs out of memory. Note that the GIT repository will still be consistent
-# even if git-mkdelta dies unexpectedly.
-
-set -e
-
-max_depth=
-[ "$1" == "-d" ] && max_depth="--max-depth=$2" && shift 2
-
-overlap=30
-max_behind="--max-behind=$overlap"
-
-function process_list() {
- if [ "$list" ]; then
- echo "Processing $curr_file"
- echo "$list" | xargs git-mkdelta $max_depth $max_behind -v
- fi
-}
-
-rev_list=""
-curr_file=""
-
-git-rev-list HEAD |
-while true; do
- # Let's batch revisions into groups of 1000 to give it a chance to
- # scale with repositories containing long revision lists. We also
- # overlap with the previous batch the size of mkdelta's look behind
- # value in order to account for the processing discontinuity.
- rev_list="$(echo -e -n "$rev_list" | tail --lines=$overlap)"
- for i in $(seq 1000); do
- read rev || break
- rev_list="$rev_list$rev\n"
- done
- echo -e -n "$rev_list" |
- git-diff-tree -r -t --stdin |
- awk '/^:/ { if ($5 == "M") printf "%s %s\n%s %s\n", $4, $6, $3, $6 }' |
- LC_ALL=C sort -s -k 2 | uniq |
- while read sha1 file; do
- if [ "$file" == "$curr_file" ]; then
- list="$list $sha1"
- else
- process_list
- curr_file="$file"
- list="$sha1"
- fi
- done
- [ "$rev" ] || break
-done
-process_list
-
-curr_file="root directory"
-list="$(
- git-rev-list HEAD |
- while read commit; do
- git-cat-file commit $commit |
- sed -n 's/tree //p;Q'
- done
- )"
-process_list
-