зеркало из https://github.com/microsoft/git.git
git p4: test sync/clone --branch behavior
Add failing tests to document behavior when there are multiple p4 branches, as created using the --branch option. In particular: Using clone --branch populates the specified branch correctly, but dies with an error when trying to checkout master. Calling sync without a master branch dies with an error looking for master. When there are two or more branches, a sync does nothing due to branch detection code, but that is expected. Using sync --branch to try to update just a particular branch updates no branch, but appears to succeed. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
e4f59a32de
Коммит
46738bd7e9
|
@ -27,14 +27,59 @@ test_expect_success 'clone no --git-dir' '
|
||||||
test_must_fail git p4 clone --git-dir=xx //depot
|
test_must_fail git p4 clone --git-dir=xx //depot
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'clone --branch' '
|
test_expect_failure 'clone --branch should checkout master' '
|
||||||
git p4 clone --branch=refs/remotes/p4/sb --dest="$git" //depot &&
|
git p4 clone --branch=refs/remotes/p4/sb --dest="$git" //depot &&
|
||||||
test_when_finished cleanup_git &&
|
test_when_finished cleanup_git &&
|
||||||
(
|
(
|
||||||
cd "$git" &&
|
cd "$git" &&
|
||||||
git ls-files >files &&
|
git rev-parse refs/remotes/p4/sb >sb &&
|
||||||
test_line_count = 0 files &&
|
git rev-parse refs/heads/master >master &&
|
||||||
test_path_is_file .git/refs/remotes/p4/sb
|
test_cmp sb master &&
|
||||||
|
git rev-parse HEAD >head &&
|
||||||
|
test_cmp sb head
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_failure 'sync when branch is not called master should work' '
|
||||||
|
git p4 clone --branch=refs/remotes/p4/sb --dest="$git" //depot@2 &&
|
||||||
|
test_when_finished cleanup_git &&
|
||||||
|
(
|
||||||
|
cd "$git" &&
|
||||||
|
git p4 sync &&
|
||||||
|
git show -s --format=%s refs/remotes/p4/sb >show &&
|
||||||
|
grep "change 3" show
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
# engages --detect-branches code, which will do filename filtering so
|
||||||
|
# no sync to either b1 or b2
|
||||||
|
test_expect_success 'sync when two branches but no master should noop' '
|
||||||
|
test_when_finished cleanup_git &&
|
||||||
|
(
|
||||||
|
cd "$git" &&
|
||||||
|
git init &&
|
||||||
|
git p4 sync --branch=refs/remotes/p4/b1 //depot@2 &&
|
||||||
|
git p4 sync --branch=refs/remotes/p4/b2 //depot@2 &&
|
||||||
|
git p4 sync &&
|
||||||
|
git show -s --format=%s refs/remotes/p4/b1 >show &&
|
||||||
|
grep "Initial import" show &&
|
||||||
|
git show -s --format=%s refs/remotes/p4/b2 >show &&
|
||||||
|
grep "Initial import" show
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_failure 'sync --branch updates specified branch' '
|
||||||
|
test_when_finished cleanup_git &&
|
||||||
|
(
|
||||||
|
cd "$git" &&
|
||||||
|
git init &&
|
||||||
|
git p4 sync --branch=refs/remotes/p4/b1 //depot@2 &&
|
||||||
|
git p4 sync --branch=refs/remotes/p4/b2 //depot@2 &&
|
||||||
|
git p4 sync --branch=refs/remotes/p4/b2 &&
|
||||||
|
git show -s --format=%s refs/remotes/p4/b1 >show &&
|
||||||
|
grep "Initial import" show &&
|
||||||
|
git show -s --format=%s refs/remotes/p4/b2 >show &&
|
||||||
|
grep "change 3" show
|
||||||
)
|
)
|
||||||
'
|
'
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче