5f3de58ff8
This means that the .git/objects/pack directory is also rsync'able, since the filenames created there-in are either unique or refer to the same data. Otherwise you might not be able to pull from a directory that is partly packed without having to worry about missing objects due to pack-file name clashes.
14 lines
445 B
Bash
14 lines
445 B
Bash
#!/bin/sh
|
|
: ${GIT_DIR=.git}
|
|
: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
|
|
rm -f .tmp-pack-*
|
|
packname=$(git-rev-list --unpacked --objects $(git-rev-parse --all) |
|
|
git-pack-objects --non-empty --incremental .tmp-pack) ||
|
|
exit 1
|
|
if [ -z "$packname" ]; then
|
|
echo Nothing new to pack
|
|
exit 0
|
|
fi
|
|
mv .tmp-pack-$packname.pack "$GIT_OBJECT_DIRECTORY/pack/pack-$packname.pack"
|
|
mv .tmp-pack-$packname.idx "$GIT_OBJECT_DIRECTORY/pack/pack-$packname.idx"
|