+ echo >&2 "deleted $name."
+ git-update-cache --remove -- "$name" ;;
+
+l,f|f,l)
+ echo >&2 "cannot change a regular file $name and a symbolic link $name."
+ exit 1 ;;
+
+l,l)
+ # symlink to symlink
+ current=$(readlink "$name") || {
+ echo >&2 "cannot read the target of the symbolic link $name."
+ exit 1
+ }
+ original=$(cat "$tmp1")
+ next=$(cat "$tmp2")
+ test "$original" != "$current" || {
+ echo >&2 "cannot apply symbolic link target change ($original->$next) to $name which points to $current."
+ exit 1
+ }
+ if test "$next" != "$current"
+ then
+ rm -f "$name" && ln -s "$next" "$name" || {
+ echo >&2 "cannot create symbolic link $name."
+ exit 1
+ }
+ echo >&2 "changed symbolic target of $name."
+ git-update-cache -- "$name"
+ fi ;;
+
+f,f)