Merge branch 'js/maint-cvsexport' into maint
authorJunio C Hamano <gitster@pobox.com>
Sat, 8 Mar 2008 10:13:52 +0000 (02:13 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sat, 8 Mar 2008 10:13:52 +0000 (02:13 -0800)
* js/maint-cvsexport:
  cvsexportcommit: be graceful when "cvs status" reorders the arguments

Conflicts:

t/t9200-git-cvsexportcommit.sh

1  2 
git-cvsexportcommit.perl
t/t9200-git-cvsexportcommit.sh

Simple merge
index 49d57a81ec1cc55f83fb63436631dfdc7d647e0b,5c2ee237397a07e5e478b0f715798fe87905e7c1..58c59ed5ae0159810b4c8258f9182991bad33636
@@@ -246,20 -246,39 +246,55 @@@ 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/" &&
 +      diff -u "$CVSWORK/W/file1.txt" ../W/file1.txt &&
 +      diff -u "$CVSWORK/W/file2.txt" ../W/file2.txt
 +      )
 +'
 +
+ test_expect_success 'check files before directories' '
+       echo Notes > release-notes &&
+       git add release-notes &&
+       git commit -m "Add release notes" release-notes &&
+       id=$(git rev-parse HEAD) &&
+       git cvsexportcommit -w "$CVSWORK" -c $id &&
+       echo new > DS &&
+       echo new > E/DS &&
+       echo modified > release-notes &&
+       git add DS E/DS release-notes &&
+       git commit -m "Add two files with the same basename" &&
+       id=$(git rev-parse HEAD) &&
+       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_expect_success 'commit a file with leading spaces in the name' '
+       echo space > " space" &&
+       git add " space" &&
+       git commit -m "Add a file with a leading space" &&
+       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_done