| #!/bin/sh | 
 |  | 
 | test_description='rebase can handle submodules' | 
 |  | 
 | . ./test-lib.sh | 
 | . "$TEST_DIRECTORY"/lib-submodule-update.sh | 
 | . "$TEST_DIRECTORY"/lib-rebase.sh | 
 |  | 
 | git_rebase () { | 
 | 	git status -su >expect && | 
 | 	ls -1pR * >>expect && | 
 | 	git checkout -b ours HEAD && | 
 | 	echo x >>file1 && | 
 | 	git add file1 && | 
 | 	git commit -m add_x && | 
 | 	git revert HEAD && | 
 | 	git status -su >actual && | 
 | 	ls -1pR * >>actual && | 
 | 	test_cmp expect actual && | 
 | 	git rebase "$1" | 
 | } | 
 |  | 
 | test_submodule_switch "git_rebase" | 
 |  | 
 | git_rebase_interactive () { | 
 | 	git status -su >expect && | 
 | 	ls -1pR * >>expect && | 
 | 	git checkout -b ours HEAD && | 
 | 	echo x >>file1 && | 
 | 	git add file1 && | 
 | 	git commit -m add_x && | 
 | 	git revert HEAD && | 
 | 	git status -su >actual && | 
 | 	ls -1pR * >>actual && | 
 | 	test_cmp expect actual && | 
 | 	set_fake_editor && | 
 | 	echo "fake-editor.sh" >.git/info/exclude && | 
 | 	git rebase -i "$1" | 
 | } | 
 |  | 
 | KNOWN_FAILURE_NOFF_MERGE_DOESNT_CREATE_EMPTY_SUBMODULE_DIR=1 | 
 | # The real reason "replace directory with submodule" fails is because a | 
 | # directory "sub1" exists, but we reuse the suppression added for merge here | 
 | test_submodule_switch "git_rebase_interactive" | 
 |  | 
 | test_done |