#
 # Copyright (c) Robin Rosenberg
 #
-test_description='CVS export comit. '
+test_description='Test export of commits to CVS'
 
 . ./test-lib.sh
 
        else
                printf '%s\n' "$2" | tr '|' '\012' >expected
        fi
-       diff -u expected actual
+       test_cmp expected actual
 }
 
 test_expect_success \
        ;;
 esac
 
+test_expect_success '-w option should work with relative GIT_DIR' '
+      mkdir W &&
+      echo foobar >W/file1.txt &&
+      echo bazzle >W/file2.txt &&
+      git add W/file1.txt &&
+      git add W/file2.txt &&
+      git commit -m "More updates" &&
+      id=$(git rev-list --max-count=1 HEAD) &&
+      (cd "$GIT_DIR" &&
+      GIT_DIR=. git cvsexportcommit -w "$CVSWORK" -c $id &&
+      check_entries "$CVSWORK/W" "file1.txt/1.1/|file2.txt/1.1/" &&
+      test_cmp "$CVSWORK/W/file1.txt" ../W/file1.txt &&
+      test_cmp "$CVSWORK/W/file2.txt" ../W/file2.txt
+      )
+'
+
 test_expect_success 'check files before directories' '
 
        echo Notes > release-notes &&
        git cvsexportcommit -w "$CVSWORK" -c $id &&
        check_entries "$CVSWORK/E" "DS/1.1/|newfile5.txt/1.1/" &&
        check_entries "$CVSWORK" "DS/1.1/|release-notes/1.2/" &&
-       diff -u "$CVSWORK/DS" DS &&
-       diff -u "$CVSWORK/E/DS" E/DS &&
-       diff -u "$CVSWORK/release-notes" release-notes
+       test_cmp "$CVSWORK/DS" DS &&
+       test_cmp "$CVSWORK/E/DS" E/DS &&
+       test_cmp "$CVSWORK/release-notes" release-notes
 
 '
 
        id=$(git rev-parse HEAD) &&
        git cvsexportcommit -w "$CVSWORK" -c $id &&
        check_entries "$CVSWORK" " space/1.1/|DS/1.1/|release-notes/1.2/" &&
-       diff -u "$CVSWORK/ space" " space"
+       test_cmp "$CVSWORK/ space" " space"
 
 '