#!/bin/sh
# Fail if two ChangeLog files use different version control systems.

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

. $srcdir/trap-setup

require_git_
require_cvs_

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

mkdir -p c/sub/CVS g || framework_failure=1
touch c/sub/f g/f || framework_failure=1
cat <<EOF > g/ChangeLog || framework_failure=1
2006-09-04  Jim Meyering  <jim@meyering.net>

	* f: X.
EOF
cp g/ChangeLog c/sub || framework_failure=1

(cd g && git init > /dev/null)           || framework_failure=1
(cd g && git add . > /dev/null)          || framework_failure=1
(cd g && git commit -m m . ) > /dev/null || framework_failure=1
mv c/sub g || 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 g
vc-dwim ChangeLog sub/ChangeLog 2> out && fail=1

cat <<\EOF > exp || fail=1
vc-dwim: ChangeLog files are managed by more than one version-control system:
  ChangeLog: git
  sub/ChangeLog: cvs
EOF

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

Exit $fail
