t / t5601-clone.shon commit clone: Add an option to set up a mirror (bc699af)
   1#!/bin/sh
   2
   3test_description=clone
   4
   5. ./test-lib.sh
   6
   7test_expect_success setup '
   8
   9        rm -fr .git &&
  10        test_create_repo src &&
  11        (
  12                cd src
  13                >file
  14                git add file
  15                git commit -m initial
  16        )
  17
  18'
  19
  20test_expect_success 'clone with excess parameters (1)' '
  21
  22        rm -fr dst &&
  23        test_must_fail git clone -n src dst junk
  24
  25'
  26
  27test_expect_success 'clone with excess parameters (2)' '
  28
  29        rm -fr dst &&
  30        test_must_fail git clone -n "file://$(pwd)/src" dst junk
  31
  32'
  33
  34test_expect_success 'clone does not keep pack' '
  35
  36        rm -fr dst &&
  37        git clone -n "file://$(pwd)/src" dst &&
  38        ! test -f dst/file &&
  39        ! (echo dst/.git/objects/pack/pack-* | grep "\.keep")
  40
  41'
  42
  43test_expect_success 'clone checks out files' '
  44
  45        rm -fr dst &&
  46        git clone src dst &&
  47        test -f dst/file
  48
  49'
  50
  51test_expect_success 'clone respects GIT_WORK_TREE' '
  52
  53        GIT_WORK_TREE=worktree git clone src bare &&
  54        test -f bare/config &&
  55        test -f worktree/file
  56
  57'
  58
  59test_expect_success 'clone creates intermediate directories' '
  60
  61        git clone src long/path/to/dst &&
  62        test -f long/path/to/dst/file
  63
  64'
  65
  66test_expect_success 'clone creates intermediate directories for bare repo' '
  67
  68        git clone --bare src long/path/to/bare/dst &&
  69        test -f long/path/to/bare/dst/config
  70
  71'
  72
  73test_expect_success 'clone --mirror' '
  74
  75        git clone --mirror src mirror &&
  76        test -f mirror/HEAD &&
  77        test ! -f mirror/file &&
  78        FETCH="$(cd mirror && git config remote.origin.fetch)" &&
  79        test "+refs/*:refs/*" = "$FETCH" &&
  80        MIRROR="$(cd mirror && git config --bool remote.origin.mirror)" &&
  81        test "$MIRROR" = true
  82
  83'
  84
  85test_done