diff options
Diffstat (limited to 'git-lost-found.sh')
-rwxr-xr-x | git-lost-found.sh | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/git-lost-found.sh b/git-lost-found.sh new file mode 100755 index 0000000..0b3e8c7 --- /dev/null +++ b/git-lost-found.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +USAGE='' +SUBDIRECTORY_OK='Yes' +OPTIONS_SPEC= +. git-sh-setup + +echo "WARNING: '$0' is deprecated in favor of 'git fsck --lost-found'" >&2 + +if [ "$#" != "0" ] +then + usage +fi + +laf="$GIT_DIR/lost-found" +rm -fr "$laf" && mkdir -p "$laf/commit" "$laf/other" || exit + +git fsck --full --no-reflogs | +while read dangling type sha1 +do + case "$dangling" in + dangling) + if git rev-parse -q --verify "$sha1^0" >/dev/null + then + dir="$laf/commit" + git show-branch "$sha1" + else + dir="$laf/other" + fi + echo "$sha1" >"$dir/$sha1" + ;; + esac +done |