#!/bin/sh
# Exercise 'git mv's renaming.  Results in different diff syntax.
# This also exercises the other fix: handle a diff header line
# with only one comma, e.g., "@@ -1 +1,4 @@".

. "${srcdir=.}/init.sh"; path_prepend_ ..
print_ver_ vc-dwim

require_git_

cat <<EOF > ChangeLog || framework_failure_
2006-09-04  Jim Meyering  <jim@meyering.net>
EOF
git init > /dev/null			\
  && touch x				\
  && git add .				\
  && git commit -m m . > /dev/null	\
  && git mv x y				\
    || framework_failure_

cat <<EOF >> ChangeLog || framework_failure_

	* x: Rename to...
	* y: ...this.
EOF

cat <<\EOF > exp || framework_failure_
* x: Rename to...
* y: ...this.
diff --git a/x b/y
similarity index 100%
rename from x
rename to y
EOF

# You get different output for a renaming, with older versions.
cat <<\EOF > exp-old || framework_failure_
* x: Rename to...
* y: ...this.
diff --git a/x b/x
deleted file mode 100644
index e69de29..0000000
diff --git a/y b/y
new file mode 100644
index 0000000..e69de29
EOF

set -e

vc-dwim ChangeLog > out

if compare exp out > /dev/null 2>&1 ; then
  :
elif compare exp-old out; then
  :
else
  false
fi

Exit 0
