#!/bin/sh
# Given a 3-level git tree with the working directory in the middle directory,
# and vc-dwim operating on a ChangeLog in the lowest level directory.

if test "$VERBOSE" = yes; then
  set -x
  vc-dwim --version
fi

. $srcdir/trap-setup

require_git_

framework_failure=0
mkdir -p $tmp || framework_failure=1
cd $tmp || framework_failure=1

ChangeLog=2/3/ChangeLog
mkdir -p 2/3		|| framework_failure=1
touch 2/3/f $ChangeLog	|| framework_failure=1
git init > /dev/null	|| framework_failure=1
git add .		|| framework_failure=1
git commit -m m . > /dev/null || framework_failure=1

cat <<EOF > $ChangeLog || framework_failure=1
2006-09-04  Jim Meyering  <jim@meyering.net>

	* f: X.
EOF
echo z > 2/3/f || framework_failure=1

if test $framework_failure = 1; then
  echo "$0: failure in testing framework" 1>&2
  (exit 1); exit 1
fi

fail=0
cd 2

vc-dwim 3/ChangeLog > out 2>&1 || fail=1

cat <<\EOF > exp || fail=1
* f: X.
diff --git a/2/3/f b/2/3/f
index e69de29..b680253 100644
--- a/2/3/f
+++ b/2/3/f
@@ -0,0 +1 @@
+z
EOF

cmp out exp || fail=1
test $fail = 1 && diff out exp 2> /dev/null

Exit $fail
