mirror of
https://github.com/git/git.git
synced 2026-04-11 01:10:11 +02:00
Merge branch 'nd/clone-detached'
* nd/clone-detached: clone: fix up delay cloning conditions push: do not let configured foreign-vcs permanently clobbered clone: print advice on checking out detached HEAD clone: allow --branch to take a tag clone: refuse to clone if --branch points to bogus ref clone: --branch=<branch> always means refs/heads/<branch> clone: delay cloning until after remote HEAD checking clone: factor out remote ref writing clone: factor out HEAD update code clone: factor out checkout code clone: write detached HEAD in bare repositories t5601: add missing && cascade
This commit is contained in:
@@ -282,13 +282,6 @@ test_expect_success 'clone shallow object count' '
|
||||
test_cmp count3.expected count3.actual
|
||||
'
|
||||
|
||||
test_expect_success 'clone shallow with nonexistent --branch' '
|
||||
git clone --depth 1 --branch Z "file://$(pwd)/." shallow4 &&
|
||||
GIT_DIR=shallow4/.git git rev-parse HEAD >actual &&
|
||||
git rev-parse HEAD >expected &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'clone shallow with detached HEAD' '
|
||||
git checkout HEAD^ &&
|
||||
git clone --depth 1 "file://$(pwd)/." shallow5 &&
|
||||
@@ -318,4 +311,19 @@ EOF
|
||||
test_cmp count6.expected count6.actual
|
||||
'
|
||||
|
||||
test_expect_success 'shallow cloning single tag' '
|
||||
git clone --depth 1 --branch=TAGB1 "file://$(pwd)/." shallow7 &&
|
||||
cat >taglist.expected <<\EOF &&
|
||||
TAGB1
|
||||
TAGB2
|
||||
EOF
|
||||
GIT_DIR=shallow7/.git git tag -l >taglist.actual &&
|
||||
test_cmp taglist.expected taglist.actual &&
|
||||
|
||||
echo "in-pack: 7" > count7.expected &&
|
||||
GIT_DIR=shallow7/.git git count-objects -v |
|
||||
grep "^in-pack" > count7.actual &&
|
||||
test_cmp count7.expected count7.actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
@@ -9,10 +9,13 @@ test_expect_success setup '
|
||||
rm -fr .git &&
|
||||
test_create_repo src &&
|
||||
(
|
||||
cd src
|
||||
>file
|
||||
git add file
|
||||
git commit -m initial
|
||||
cd src &&
|
||||
>file &&
|
||||
git add file &&
|
||||
git commit -m initial &&
|
||||
echo 1 >file &&
|
||||
git add file &&
|
||||
git commit -m updated
|
||||
)
|
||||
|
||||
'
|
||||
@@ -88,6 +91,26 @@ test_expect_success 'clone --mirror' '
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'clone --mirror with detached HEAD' '
|
||||
|
||||
( cd src && git checkout HEAD^ && git rev-parse HEAD >../expected ) &&
|
||||
git clone --mirror src mirror.detached &&
|
||||
( cd src && git checkout - ) &&
|
||||
GIT_DIR=mirror.detached git rev-parse HEAD >actual &&
|
||||
test_cmp expected actual
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'clone --bare with detached HEAD' '
|
||||
|
||||
( cd src && git checkout HEAD^ && git rev-parse HEAD >../expected ) &&
|
||||
git clone --bare src bare.detached &&
|
||||
( cd src && git checkout - ) &&
|
||||
GIT_DIR=bare.detached git rev-parse HEAD >actual &&
|
||||
test_cmp expected actual
|
||||
|
||||
'
|
||||
|
||||
test_expect_success 'clone --bare names the local repository <name>.git' '
|
||||
|
||||
git clone --bare src &&
|
||||
@@ -248,4 +271,13 @@ test_expect_success 'clone from original with relative alternate' '
|
||||
grep /src/\\.git/objects target-10/objects/info/alternates
|
||||
'
|
||||
|
||||
test_expect_success 'clone checking out a tag' '
|
||||
git clone --branch=some-tag src dst.tag &&
|
||||
GIT_DIR=src/.git git rev-parse some-tag >expected &&
|
||||
test_cmp expected dst.tag/.git/HEAD &&
|
||||
GIT_DIR=dst.tag/.git git config remote.origin.fetch >fetch.actual &&
|
||||
echo "+refs/heads/*:refs/remotes/origin/*" >fetch.expected &&
|
||||
test_cmp fetch.expected fetch.actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
@@ -57,12 +57,8 @@ test_expect_success 'clone -b does not munge remotes/origin/HEAD' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'clone -b with bogus branch chooses HEAD' '
|
||||
git clone -b bogus parent clone-bogus &&
|
||||
(cd clone-bogus &&
|
||||
check_HEAD master &&
|
||||
check_file one
|
||||
)
|
||||
test_expect_success 'clone -b with bogus branch' '
|
||||
test_must_fail git clone -b bogus parent clone-bogus
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
Reference in New Issue
Block a user