Merge branch 'maint'

* maint:
  Fix git-svn to handle svn not reporting the md5sum of a file, and test.
  Fix mishandling of $Id$ expanded in the repository copy in convert.c
  More echo "$user_message" fixes.
  Add tests for the last two fixes.
  git-commit: use printf '%s\n' instead of echo on user-supplied strings
  git-am: use printf instead of echo on user-supplied strings
  Documentation: Add definition of "evil merge" to GIT Glossary
  Replace the last 'dircache's by 'index'
  Documentation: Clean up links in GIT Glossary
This commit is contained in:
Junio C Hamano
2007-05-26 18:53:22 -07:00
11 changed files with 152 additions and 49 deletions

View File

@ -16,16 +16,16 @@ test_expect_success setup '
for i in 1 2 5 6 A B C 7 8 9 10; do echo "$i"; done >file &&
git update-index file &&
git commit -m "Side change #1" &&
git commit -m "Side changes #1" &&
for i in D E F; do echo "$i"; done >>file &&
git update-index file &&
git commit -m "Side change #2" &&
git commit -m "Side changes #2" &&
git tag C2 &&
for i in 5 6 1 2 3 A 4 B C 7 8 9 10 D E F; do echo "$i"; done >file &&
git update-index file &&
git commit -m "Side change #3" &&
git commit -m "Side changes #3 with \\n backslash-n in it." &&
git checkout master &&
git diff-tree -p C2 | git apply --index &&
@ -66,4 +66,23 @@ test_expect_success "format-patch --ignore-if-in-upstream result applies" '
test $cnt = 2
'
test_expect_success 'commit did not screw up the log message' '
git cat-file commit side | grep "^Side .* with .* backslash-n"
'
test_expect_success 'format-patch did not screw up the log message' '
grep "^Subject: .*Side changes #3 with .* backslash-n" patch0 &&
grep "^Subject: .*Side changes #3 with .* backslash-n" patch1
'
test_expect_success 'replay did not screw up the log message' '
git cat-file commit rebuild-1 | grep "^Side .* with .* backslash-n"
'
test_done

45
t/t9112-git-svn-md5less-file.sh Executable file
View File

@ -0,0 +1,45 @@
test_description='test that git handles an svn repository with missing md5sums'
. ./lib-git-svn.sh
# Loading a node from a svn dumpfile without a Text-Content-Length
# field causes svn to neglect to store or report an md5sum. (it will
# calculate one if you had put Text-Content-Length: 0). This showed
# up in a repository creted with cvs2svn.
cat > dumpfile.svn <<EOF
SVN-fs-dump-format-version: 1
Revision-number: 1
Prop-content-length: 98
Content-length: 98
K 7
svn:log
V 0
K 10
svn:author
V 4
test
K 8
svn:date
V 27
2007-05-06T12:37:01.153339Z
PROPS-END
Node-path: md5less-file
Node-kind: file
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
EOF
test_expect_success 'load svn dumpfile' "svnadmin load $rawsvnrepo < dumpfile.svn"
test_expect_success 'initialize git-svn' "git-svn init $svnrepo"
test_expect_success 'fetch revisions from svn' 'git-svn fetch'
test_done