mirror of
https://github.com/git/git
synced 2024-08-25 10:45:59 +00:00
![Junio C Hamano](/assets/img/avatar_default.png)
Because we use "lost-found" as the directory name to hold dangling object names, it is confusing to call the command git-lost+found, although it makes sense and is even cute ;-). Signed-off-by: Junio C Hamano <junkio@cox.net>
24 lines
420 B
Bash
Executable file
24 lines
420 B
Bash
Executable file
#!/bin/sh
|
|
|
|
. git-sh-setup || die "Not a git archive."
|
|
|
|
laf="$GIT_DIR/lost-found"
|
|
rm -fr "$laf" && mkdir -p "$laf/commit" "$laf/other" || exit
|
|
|
|
git fsck-objects |
|
|
while read dangling type sha1
|
|
do
|
|
case "$dangling" in
|
|
dangling)
|
|
if git-rev-parse --verify "$sha1^0" >/dev/null 2>/dev/null
|
|
then
|
|
dir="$laf/commit"
|
|
git-show-branch "$sha1"
|
|
else
|
|
dir="$laf/other"
|
|
fi
|
|
echo "$sha1" >"$dir/$sha1"
|
|
;;
|
|
esac
|
|
done
|