Add "git-sh-setup-script" for common git shell script setup
It sets up the normal git environment variables and a few helper functions (currently just "die()"), and returns ok if it all looks like a git archive. So use it something like . git-sh-setup-script || die "Not a git archive" to make the rest of the git scripts more careful and readable.
This commit is contained in:
parent
acb46f8769
commit
b33e966608
2
Makefile
2
Makefile
@ -34,7 +34,7 @@ SCRIPTS=git git-apply-patch-script git-merge-one-file-script git-prune-script \
|
||||
git-log-script git-shortlog git-cvsimport-script git-diff-script \
|
||||
git-reset-script git-add-script git-checkout-script git-clone-script \
|
||||
gitk git-cherry git-rebase-script git-relink-script git-repack-script \
|
||||
git-format-patch-script
|
||||
git-format-patch-script git-sh-setup-script
|
||||
|
||||
PROG= git-update-cache git-diff-files git-init-db git-write-tree \
|
||||
git-read-tree git-commit-tree git-cat-file git-fsck-cache \
|
||||
|
@ -1,5 +1,6 @@
|
||||
#!/bin/sh
|
||||
: ${GIT_DIR=.git}
|
||||
. git-sh-setup-script || die "Not a git archive"
|
||||
|
||||
old=$(git-rev-parse HEAD)
|
||||
new=
|
||||
force=
|
||||
|
@ -3,16 +3,12 @@
|
||||
# Copyright (c) 2005 Linus Torvalds
|
||||
#
|
||||
|
||||
. git-sh-setup-script || die "Not a git archive"
|
||||
|
||||
usage () {
|
||||
echo 'git commit [-m existing-commit] [<path>...]'
|
||||
exit 1
|
||||
die 'git commit [-m existing-commit] [<path>...]'
|
||||
}
|
||||
|
||||
: ${GIT_DIR=.git}
|
||||
if [ ! -d "$GIT_DIR" ]; then
|
||||
echo Not a git directory 1>&2
|
||||
exit 1
|
||||
fi
|
||||
while case "$#" in 0) break ;; esac
|
||||
do
|
||||
case "$1" in
|
||||
|
@ -9,8 +9,8 @@ if [ "$2" = "tag" ]; then
|
||||
destination="$merge_name"
|
||||
fi
|
||||
|
||||
: ${GIT_DIR=.git}
|
||||
: ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"}
|
||||
. git-sh-setup-script || die "Not a git archive"
|
||||
|
||||
TMP_HEAD="$GIT_DIR/TMP_HEAD"
|
||||
|
||||
case "$merge_repo" in
|
||||
|
@ -1,4 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
. git-sh-setup-script || die "Not a git archive"
|
||||
|
||||
dryrun=
|
||||
while case "$#" in 0) break ;; esac
|
||||
do
|
||||
@ -11,9 +14,6 @@ do
|
||||
shift;
|
||||
done
|
||||
|
||||
: ${GIT_DIR=.git}
|
||||
: ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"}
|
||||
|
||||
git-fsck-cache --cache --unreachable "$@" |
|
||||
sed -ne '/unreachable /{
|
||||
s/unreachable [^ ][^ ]* //
|
||||
|
@ -1,5 +1,7 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
. git-sh-setup-script || die "Not a git archive"
|
||||
|
||||
merge_repo=$1
|
||||
|
||||
merge_name=$(echo "$1" | sed 's:\.git/*$::')
|
||||
@ -15,9 +17,6 @@ then
|
||||
merge_head="refs/${type}s/$2"
|
||||
fi
|
||||
|
||||
: ${GIT_DIR=.git}
|
||||
: ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"}
|
||||
|
||||
git-fetch-script "$merge_repo" "$merge_head" || exit 1
|
||||
|
||||
git-resolve-script \
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
: ${GIT_DIR=.git}
|
||||
: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
|
||||
. git-sh-setup-script || die "Not a git archive"
|
||||
|
||||
rm -f .tmp-pack-*
|
||||
packname=$(git-rev-list --unpacked --objects $(git-rev-parse --all) |
|
||||
git-pack-objects --non-empty --incremental .tmp-pack) ||
|
||||
@ -9,5 +9,6 @@ if [ -z "$packname" ]; then
|
||||
echo Nothing new to pack
|
||||
exit 0
|
||||
fi
|
||||
mv .tmp-pack-$packname.pack "$GIT_OBJECT_DIRECTORY/pack/pack-$packname.pack"
|
||||
mkdir -p "$GIT_OBJECT_DIRECTORY/pack" &&
|
||||
mv .tmp-pack-$packname.pack "$GIT_OBJECT_DIRECTORY/pack/pack-$packname.pack" &&
|
||||
mv .tmp-pack-$packname.idx "$GIT_OBJECT_DIRECTORY/pack/pack-$packname.idx"
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
: ${GIT_DIR=.git}
|
||||
. git-sh-setup-script || die "Not a git archive"
|
||||
git-read-tree --reset HEAD
|
||||
git-update-cache --refresh
|
||||
rm -f "$GIT_DIR/MERGE_HEAD"
|
||||
|
@ -4,13 +4,12 @@
|
||||
#
|
||||
# Resolve two trees.
|
||||
#
|
||||
. git-sh-setup-script || die "Not a git archive"
|
||||
|
||||
head=$(git-rev-parse --revs-only "$1")
|
||||
merge=$(git-rev-parse --revs-only "$2")
|
||||
merge_repo="$3"
|
||||
|
||||
: ${GIT_DIR=.git}
|
||||
: ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"}
|
||||
|
||||
dropheads() {
|
||||
rm -f -- "$GIT_DIR/MERGE_HEAD" \
|
||||
"$GIT_DIR/LAST_MERGE" || exit 1
|
||||
@ -21,8 +20,7 @@ dropheads() {
|
||||
# but we do want it.
|
||||
#
|
||||
if [ -z "$head" -o -z "$merge" -o -z "$merge_repo" ]; then
|
||||
echo "git-resolve-script <head> <remote> <merge-repo-name>"
|
||||
exit 1
|
||||
die "git-resolve-script <head> <remote> <merge-repo-name>"
|
||||
fi
|
||||
|
||||
dropheads
|
||||
@ -31,8 +29,7 @@ echo $merge > "$GIT_DIR"/LAST_MERGE
|
||||
|
||||
common=$(git-merge-base $head $merge)
|
||||
if [ -z "$common" ]; then
|
||||
echo "Unable to find common commit between" $merge $head
|
||||
exit 1
|
||||
die "Unable to find common commit between" $merge $head
|
||||
fi
|
||||
|
||||
if [ "$common" == "$merge" ]; then
|
||||
@ -57,8 +54,7 @@ if [ $? -ne 0 ]; then
|
||||
git-merge-cache -o git-merge-one-file-script -a
|
||||
if [ $? -ne 0 ]; then
|
||||
echo $merge > "$GIT_DIR"/MERGE_HEAD
|
||||
echo "Automatic merge failed, fix up by hand"
|
||||
exit 1
|
||||
die "Automatic merge failed, fix up by hand"
|
||||
fi
|
||||
result_tree=$(git-write-tree) || exit 1
|
||||
fi
|
||||
|
17
git-sh-setup-script
Normal file
17
git-sh-setup-script
Normal file
@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Set up GIT_DIR and GIT_OBJECT_DIRECTORY
|
||||
# and return true if everything looks ok
|
||||
#
|
||||
: ${GIT_DIR=.git}
|
||||
: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
|
||||
|
||||
die() {
|
||||
echo "$@" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ -d "$GIT_DIR" ] &&
|
||||
[ -d "$GIT_DIR/refs" ]
|
||||
[ -d "$GIT_OBJECT_DIRECTORY" ] &&
|
||||
[ -d "$GIT_OBJECT_DIRECTORY/00" ]
|
Loading…
Reference in New Issue
Block a user