]>
Commit | Line | Data |
---|---|---|
29633bb9 EW |
1 | #!/bin/sh |
2 | # | |
3 | # Copyright (c) 2007 Eric Wong | |
4 | ||
5 | ||
1364ff27 | 6 | test_description='git svn dcommit can commit renames of files with ugly names' |
29633bb9 EW |
7 | |
8 | . ./lib-git-svn.sh | |
9 | ||
f69e836f | 10 | test_expect_success 'load repository with strange names' ' |
bfdbee98 | 11 | svnadmin load -q "$rawsvnrepo" < "$TEST_DIRECTORY"/t9115/funky-names.dump && |
d1a8d0ea | 12 | start_httpd gtk+ |
f69e836f | 13 | ' |
29633bb9 | 14 | |
f69e836f BD |
15 | test_expect_success 'init and fetch repository' ' |
16 | git svn init "$svnrepo" && | |
29633bb9 EW |
17 | git svn fetch && |
18 | git reset --hard git-svn | |
f69e836f | 19 | ' |
29633bb9 EW |
20 | |
21 | test_expect_success 'create file in existing ugly and empty dir' ' | |
6111b934 | 22 | mkdir -p "#{bad_directory_name}" && |
29633bb9 EW |
23 | echo hi > "#{bad_directory_name}/ foo" && |
24 | git update-index --add "#{bad_directory_name}/ foo" && | |
25 | git commit -m "new file in ugly parent" && | |
26 | git svn dcommit | |
27 | ' | |
28 | ||
29 | test_expect_success 'rename ugly file' ' | |
30 | git mv "#{bad_directory_name}/ foo" "file name with feces" && | |
31 | git commit -m "rename ugly file" && | |
32 | git svn dcommit | |
33 | ' | |
34 | ||
35 | test_expect_success 'rename pretty file' ' | |
36 | echo :x > pretty && | |
37 | git update-index --add pretty && | |
38 | git commit -m "pretty :x" && | |
39 | git svn dcommit && | |
6111b934 | 40 | mkdir -p regular_dir_name && |
29633bb9 EW |
41 | git mv pretty regular_dir_name/pretty && |
42 | git commit -m "moved pretty file" && | |
43 | git svn dcommit | |
44 | ' | |
45 | ||
46 | test_expect_success 'rename pretty file into ugly one' ' | |
47 | git mv regular_dir_name/pretty "#{bad_directory_name}/ booboo" && | |
48 | git commit -m booboo && | |
49 | git svn dcommit | |
50 | ' | |
51 | ||
d1a8d0ea EW |
52 | test_expect_success 'add a file with plus signs' ' |
53 | echo .. > +_+ && | |
54 | git update-index --add +_+ && | |
55 | git commit -m plus && | |
56 | mkdir gtk+ && | |
57 | git mv +_+ gtk+/_+_ && | |
58 | git commit -m plus_dir && | |
59 | git svn dcommit | |
60 | ' | |
61 | ||
761adeb4 JH |
62 | test_expect_success 'clone the repository to test rebase' ' |
63 | git svn clone "$svnrepo" test-rebase && | |
d1a8d0ea EW |
64 | cd test-rebase && |
65 | echo test-rebase > test-rebase && | |
66 | git add test-rebase && | |
67 | git commit -m test-rebase && | |
68 | cd .. | |
761adeb4 | 69 | ' |
d1a8d0ea | 70 | |
761adeb4 | 71 | test_expect_success 'make a commit to test rebase' ' |
d1a8d0ea EW |
72 | echo test-rebase-main > test-rebase-main && |
73 | git add test-rebase-main && | |
74 | git commit -m test-rebase-main && | |
75 | git svn dcommit | |
761adeb4 | 76 | ' |
d1a8d0ea | 77 | |
1364ff27 | 78 | test_expect_success 'git svn rebase works inside a fresh-cloned repository' ' |
d1a8d0ea EW |
79 | cd test-rebase && |
80 | git svn rebase && | |
81 | test -e test-rebase-main && | |
82 | test -e test-rebase | |
761adeb4 | 83 | ' |
d1a8d0ea | 84 | |
29633bb9 EW |
85 | stop_httpd |
86 | ||
87 | test_done |