Re: [PATCH 3/3] git-p4: Add test case for complex branch import
From: Pete Wyckoff <hidden>
Date: 2016-06-15 22:52:48
vitor.hda@gmail.com wrote on Mon, 16 Jan 2012 00:39 +0000:
quoted hunk ↗ jump to hunk
diff --git a/t/t9801-git-p4-branch.sh b/t/t9801-git-p4-branch.sh +test_expect_success 'git-p4 add complex branches' ' + test_when_finished cleanup_git && + test_create_repo "$git" && + ( + cd "$cli" && + changelist=$(p4 changes -m1 //depot/... | cut -d" " -f2) && + changelist=$((changelist - 5)) && + p4 integrate //depot/branch1/...@$changelist //depot/branch4/... && + p4 submit -d "branch4" && + changelist=$((changelist + 2)) && + p4 integrate //depot/branch1/...@$changelist //depot/branch5/... && + p4 submit -d "branch5" && + cd "$TRASH_DIRECTORY" + ) +'
Sorry: I think I wanted the "$"s removed from inside $((..)). Turns out that some shells don't grok that. The above should be: changelist=$(($changelist - 5)) && You can drop the last cd to $TRASH_DIRECTORY since you're inside a subshell. (Nice addition of the subshells.)
+ +# Configure branches through git-config and clone them. git-p4 will only be able +# to clone the original structure if it is able to detect the origin changelist +# of each branch. +test_expect_success 'git-p4 clone complex branches' ' + test_when_finished cleanup_git && + test_create_repo "$git" && + ( + test_when_finished cleanup_git && + test_create_repo "$git" &&
These two lines can go; you already did it outside the subshell.
+ cd "$git" && + git config git-p4.branchList branch1:branch2 && + git config --add git-p4.branchList branch1:branch3 && + git config --add git-p4.branchList branch1:branch4 && + git config --add git-p4.branchList branch1:branch5 && + "$GITP4" clone --dest=. --detect-branches //depot@all && + git log --all --graph --decorate --stat && + git reset --hard p4/depot/branch1 && + test -f file1 && + test -f file2 && + test -f file3 &&
There are preferred functions for these tests, I learned recently: test_path_is_file file1 &&
+ grep -q update file2 && + git reset --hard p4/depot/branch2 && + test -f file1 && + test -f file2 && + test ! -f file3 &&
Similarly test_path_is_missing file3 &&
+ ! grep -q update file2 && + git reset --hard p4/depot/branch3 && + test -f file1 && + test -f file2 && + test -f file3 && + grep -q update file2 && + git reset --hard p4/depot/branch4 && + test -f file1 && + test -f file2 && + test ! -f file3 && + ! grep -q update file2 && + git reset --hard p4/depot/branch5 && + test -f file1 && + test -f file2 && + test -f file3 && + ! grep -q update file2 && + test ! -d .git/git-p4-tmp + ) +'