t / t7409-submodule-detached-work-tree.shon commit Merge branch 'jk/check-connected-with-alternates' (68e65de)
   1#!/bin/sh
   2#
   3# Copyright (c) 2012 Daniel GraƱa
   4#
   5
   6test_description='Test submodules on detached working tree
   7
   8This test verifies that "git submodule" initialization, update and addition works
   9on detached working trees
  10'
  11
  12TEST_NO_CREATE_REPO=1
  13. ./test-lib.sh
  14
  15test_expect_success 'submodule on detached working tree' '
  16        git init --bare remote &&
  17        test_create_repo bundle1 &&
  18        (
  19                cd bundle1 &&
  20                test_commit "shoot" &&
  21                git rev-parse --verify HEAD >../expect
  22        ) &&
  23        mkdir home &&
  24        (
  25                cd home &&
  26                GIT_WORK_TREE="$(pwd)" &&
  27                GIT_DIR="$(pwd)/.dotfiles" &&
  28                export GIT_WORK_TREE GIT_DIR &&
  29                git clone --bare ../remote .dotfiles &&
  30                git submodule add ../bundle1 .vim/bundle/sogood &&
  31                test_commit "sogood" &&
  32                (
  33                        unset GIT_WORK_TREE GIT_DIR &&
  34                        cd .vim/bundle/sogood &&
  35                        git rev-parse --verify HEAD >actual &&
  36                        test_cmp ../../../../expect actual
  37                ) &&
  38                git push origin master
  39        ) &&
  40        mkdir home2 &&
  41        (
  42                cd home2 &&
  43                git clone --bare ../remote .dotfiles &&
  44                GIT_WORK_TREE="$(pwd)" &&
  45                GIT_DIR="$(pwd)/.dotfiles" &&
  46                export GIT_WORK_TREE GIT_DIR &&
  47                git checkout master &&
  48                git submodule update --init &&
  49                (
  50                        unset GIT_WORK_TREE GIT_DIR &&
  51                        cd .vim/bundle/sogood &&
  52                        git rev-parse --verify HEAD >actual &&
  53                        test_cmp ../../../../expect actual
  54                )
  55        )
  56'
  57
  58test_expect_success 'submodule on detached working pointed by core.worktree' '
  59        mkdir home3 &&
  60        (
  61                cd home3 &&
  62                GIT_DIR="$(pwd)/.dotfiles" &&
  63                export GIT_DIR &&
  64                git clone --bare ../remote "$GIT_DIR" &&
  65                git config core.bare false &&
  66                git config core.worktree .. &&
  67                git checkout master &&
  68                git submodule add ../bundle1 .vim/bundle/dupe &&
  69                test_commit "dupe" &&
  70                git push origin master
  71        ) &&
  72        (
  73                cd home &&
  74                GIT_DIR="$(pwd)/.dotfiles" &&
  75                export GIT_DIR &&
  76                git config core.bare false &&
  77                git config core.worktree .. &&
  78                git pull &&
  79                git submodule update --init &&
  80                test -f .vim/bundle/dupe/shoot.t
  81        )
  82'
  83
  84test_done