diff options
author | Junio C Hamano <junkio@cox.net> | 2005-05-09 22:57:58 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-05-09 22:57:58 -0700 |
commit | 8ac069ac0ab34e751e5f96b0244a5fec10f3e54f (patch) | |
tree | 59cc00b465f9b567fe7da2fa087b89e598d86324 /git-prune-script | |
parent | d19938ab6053e3dad75a68a60ef8cad1f378b0e5 (diff) | |
download | git-8ac069ac0ab34e751e5f96b0244a5fec10f3e54f.tar.gz git-8ac069ac0ab34e751e5f96b0244a5fec10f3e54f.tar.xz |
Introduce GIT_DIR environment variable.
During the mailing list discussion on renaming GIT_ environment
variables, people felt that having one environment that lets the
user (or Porcelain) specify both SHA1_FILE_DIRECTORY (now
GIT_OBJECT_DIRECTORY) and GIT_INDEX_FILE for the default layout
would be handy. This change introduces GIT_DIR environment
variable, from which the defaults for GIT_INDEX_FILE and
GIT_OBJECT_DIRECTORY are derived. When GIT_DIR is not defined,
it defaults to ".git". GIT_INDEX_FILE defaults to
"$GIT_DIR/index" and GIT_OBJECT_DIRECTORY defaults to
"$GIT_DIR/objects".
Special thanks for ideas and discussions go to Petr Baudis and
Daniel Barkalow. Bugs are mine ;-)
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-prune-script')
-rwxr-xr-x | git-prune-script | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/git-prune-script b/git-prune-script index c0ffb1dcb..1a97ccc91 100755 --- a/git-prune-script +++ b/git-prune-script @@ -11,6 +11,9 @@ do shift; done +: ${GIT_DIR=.git} +: ${GIT_OBJECT_DIRECTORY="${SHA1_FILE_DIRECTORY-"$GIT_DIR/objects"}"} + # Defaulting to include .git/refs/*/* may be debatable from the # purist POV but power users can always give explicit parameters # to the script anyway. @@ -19,7 +22,8 @@ case "$#" in 0) x_40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]' x_40="$x_40$x_40$x_40$x_40$x_40$x_40$x_40$x_40" - set x $(sed -ne "/^$x_40\$/p" .git/HEAD .git/refs/*/* 2>/dev/null) + set x $(sed -ne "/^$x_40\$/p" \ + "$GIT_DIR"/HEAD "$GIT_DIR"/refs/*/* /dev/null 2>/dev/null) shift ;; esac @@ -28,13 +32,7 @@ sed -ne '/unreachable /{ s/unreachable [^ ][^ ]* // s|\(..\)|\1/|p }' | { - for d in "$GIT_OBJECT_DIRECTORY" "$SHA1_FILE_DIRECTORY" '' - do - test "$d" != "" && test -d "$d" && break - done - case "$d" in - '') cd .git/objects/ ;; - *) cd "$d" ;; - esac || exit + cd "$GIT_OBJECT_DIRECTORY" || exit xargs -r $dryrun rm -f } + |