1#!/bin/sh 2# 3# Copyright (C) 2006 Carl D. Worth <cworth@cworth.org> 4# 5 6test_description='test git clone to cleanup after failure 7 8This test covers the fact that if git clone fails, it should remove 9the directory it created, to avoid the user having to manually 10remove the directory before attempting a clone again.' 11 12. ./test-lib.sh 13 14test_expect_success \ 15'clone of non-existent source should fail' \ 16'test_must_fail git clone foo bar' 17 18test_expect_success \ 19'failed clone should not leave a directory' \ 20'! test -d bar' 21 22# Need a repo to clone 23test_create_repo foo 24 25# clone doesn't like it if there is no HEAD. Is that a bug? 26(cd foo &&touch file&& git add file&& git commit -m'add file'>/dev/null 2>&1) 27 28# source repository given to git clone should be relative to the 29# current path not to the target dir 30test_expect_success \ 31'clone of non-existent (relative to$PWD) source should fail' \ 32'test_must_fail git clone ../foo baz' 33 34test_expect_success \ 35'clone should work now that source exists' \ 36'git clone foo bar' 37 38test_expect_success \ 39'successful clone must leave the directory' \ 40'test -d bar' 41 42test_expect_success 'failed clone --separate-git-dir should not leave any directories'' 43 mkdir foo/.git/objects.bak/ && 44 mv foo/.git/objects/* foo/.git/objects.bak/ && 45 test_must_fail git clone --separate-git-dir gitdir foo worktree && 46 test_must_fail test -e gitdir && 47 test_must_fail test -e worktree && 48 mv foo/.git/objects.bak/* foo/.git/objects/ && 49 rmdir foo/.git/objects.bak 50' 51 52test_done