Merge branch 'jk/for-each-ref-icase'
[git/git-svn.git] / t / t3401-rebase-and-am-rename.sh
blob8f832957fc38110b7653ad0a058172ed9fc8bf1f
1 #!/bin/sh
3 test_description='git rebase + directory rename tests'
5 . ./test-lib.sh
6 . "$TEST_DIRECTORY"/lib-rebase.sh
8 test_expect_success 'setup testcase' '
9 test_create_repo dir-rename &&
11 cd dir-rename &&
13 mkdir x &&
14 test_seq 1 10 >x/a &&
15 test_seq 11 20 >x/b &&
16 test_seq 21 30 >x/c &&
17 test_write_lines a b c d e f g h i >l &&
18 git add x l &&
19 git commit -m "Initial" &&
21 git branch O &&
22 git branch A &&
23 git branch B &&
25 git checkout A &&
26 git mv x y &&
27 git mv l letters &&
28 git commit -m "Rename x to y, l to letters" &&
30 git checkout B &&
31 echo j >>l &&
32 test_seq 31 40 >x/d &&
33 git add l x/d &&
34 git commit -m "Modify l, add x/d"
38 test_expect_success 'rebase --interactive: directory rename detected' '
40 cd dir-rename &&
42 git checkout B^0 &&
44 set_fake_editor &&
45 FAKE_LINES="1" git rebase --interactive A &&
47 git ls-files -s >out &&
48 test_line_count = 5 out &&
50 test_path_is_file y/d &&
51 test_path_is_missing x/d
55 test_expect_failure 'rebase (am): directory rename detected' '
57 cd dir-rename &&
59 git checkout B^0 &&
61 git rebase A &&
63 git ls-files -s >out &&
64 test_line_count = 5 out &&
66 test_path_is_file y/d &&
67 test_path_is_missing x/d
71 test_expect_success 'rebase --merge: directory rename detected' '
73 cd dir-rename &&
75 git checkout B^0 &&
77 git rebase --merge A &&
79 git ls-files -s >out &&
80 test_line_count = 5 out &&
82 test_path_is_file y/d &&
83 test_path_is_missing x/d
87 test_expect_failure 'am: directory rename detected' '
89 cd dir-rename &&
91 git checkout A^0 &&
93 git format-patch -1 B &&
95 git am --3way 0001*.patch &&
97 git ls-files -s >out &&
98 test_line_count = 5 out &&
100 test_path_is_file y/d &&
101 test_path_is_missing x/d
105 test_done