t / t3050-subprojects-fetch.shon commit standardize and improve lookup rules for external local repos (b3256eb)
   1#!/bin/sh
   2
   3test_description='fetching and pushing project with subproject'
   4
   5. ./test-lib.sh
   6
   7test_expect_success setup '
   8        test_tick &&
   9        mkdir -p sub && (
  10                cd sub &&
  11                git init &&
  12                >subfile &&
  13                git add subfile &&
  14                git commit -m "subproject commit #1"
  15        ) &&
  16        >mainfile &&
  17        git add sub mainfile &&
  18        test_tick &&
  19        git commit -m "superproject commit #1"
  20'
  21
  22test_expect_success clone '
  23        git clone "file://$(pwd)/.git" cloned &&
  24        (git rev-parse HEAD; git ls-files -s) >expected &&
  25        (
  26                cd cloned &&
  27                (git rev-parse HEAD; git ls-files -s) >../actual
  28        ) &&
  29        test_cmp expected actual
  30'
  31
  32test_expect_success advance '
  33        echo more >mainfile &&
  34        git update-index --force-remove sub &&
  35        mv sub/.git sub/.git-disabled &&
  36        git add sub/subfile mainfile &&
  37        mv sub/.git-disabled sub/.git &&
  38        test_tick &&
  39        git commit -m "superproject commit #2"
  40'
  41
  42test_expect_success fetch '
  43        (git rev-parse HEAD; git ls-files -s) >expected &&
  44        (
  45                cd cloned &&
  46                git pull &&
  47                (git rev-parse HEAD; git ls-files -s) >../actual
  48        ) &&
  49        test_cmp expected actual
  50'
  51
  52test_done