#!/bin/sh global test_description := ''git p4 support for file type change'' source ./lib-git-p4.sh test_expect_success 'start p4d' ' start_p4d ' test_expect_success 'create files' ' ( cd "$cli" && p4 client -o | sed "/LineEnd/s/:.*/:unix/" | p4 client -i && cat >file1 <<-EOF && text without any funny substitution business EOF cat >file2 <<-EOF && second file whose type will change EOF p4 add file1 file2 && p4 submit -d "add files" ) ' test_expect_success SYMLINKS 'change file to symbolic link' ' git p4 clone --dest="$git" //depot@all && test_when_finished cleanup_git && ( cd "$git" && git config git-p4.skipSubmitEdit true && rm file2 && ln -s file1 file2 && git add file2 && git commit -m "symlink file1 to file2" && git p4 submit && p4 filelog -m 1 //depot/file2 >filelog && grep "(symlink)" filelog ) ' test_expect_success SYMLINKS 'change symbolic link to file' ' git p4 clone --dest="$git" //depot@all && test_when_finished cleanup_git && ( cd "$git" && git config git-p4.skipSubmitEdit true && rm file2 && cat >file2 <<-EOF && This is another content for the second file. EOF git add file2 && git commit -m "re-write file2" && git p4 submit && p4 filelog -m 1 //depot/file2 >filelog && grep "(text)" filelog ) ' test_expect_success 'kill p4d' ' kill_p4d ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"git p4 support for file type change">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./lib-git-p4.sh)}) (C {(test_expect_success)} {(SQ <"start p4d">)} {(SQ <"\n"> <"\tstart_p4d\n">)}) (C {(test_expect_success)} {(SQ <"create files">)} { (SQ <"\n"> <"\t(\n"> <"\t\tcd \"$cli\" &&\n"> <"\t\tp4 client -o | sed \"/LineEnd/s/:.*/:unix/\" | p4 client -i &&\n"> <"\t\tcat >file1 <<-EOF &&\n"> <"\t\ttext without any funny substitution business\n"> <"\t\tEOF\n"> <"\t\tcat >file2 <<-EOF &&\n"> <"\t\tsecond file whose type will change\n"> <"\t\tEOF\n"> <"\t\tp4 add file1 file2 &&\n"> <"\t\tp4 submit -d \"add files\"\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SYMLINKS)} {(SQ <"change file to symbolic link">)} { (SQ <"\n"> <"\tgit p4 clone --dest=\"$git\" //depot@all &&\n"> <"\ttest_when_finished cleanup_git &&\n"> <"\t(\n"> <"\t\tcd \"$git\" &&\n"> <"\t\tgit config git-p4.skipSubmitEdit true &&\n"> <"\n"> <"\t\trm file2 &&\n"> <"\t\tln -s file1 file2 &&\n"> <"\t\tgit add file2 &&\n"> <"\t\tgit commit -m \"symlink file1 to file2\" &&\n"> <"\t\tgit p4 submit &&\n"> <"\t\tp4 filelog -m 1 //depot/file2 >filelog &&\n"> <"\t\tgrep \"(symlink)\" filelog\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SYMLINKS)} {(SQ <"change symbolic link to file">)} { (SQ <"\n"> <"\tgit p4 clone --dest=\"$git\" //depot@all &&\n"> <"\ttest_when_finished cleanup_git &&\n"> <"\t(\n"> <"\t\tcd \"$git\" &&\n"> <"\t\tgit config git-p4.skipSubmitEdit true &&\n"> <"\n"> <"\t\trm file2 &&\n"> <"\t\tcat >file2 <<-EOF &&\n"> <"\t\tThis is another content for the second file.\n"> <"\t\tEOF\n"> <"\t\tgit add file2 &&\n"> <"\t\tgit commit -m \"re-write file2\" &&\n"> <"\t\tgit p4 submit &&\n"> <"\t\tp4 filelog -m 1 //depot/file2 >filelog &&\n"> <"\t\tgrep \"(text)\" filelog\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"kill p4d">)} {(SQ <"\n"> <"\tkill_p4d\n">)}) (C {(test_done)}) ] )