t / t9817-git-p4-exclude.shon commit t3903: abstract away SHA-1-specific constants (c784815)
   1#!/bin/sh
   2
   3test_description='git p4 tests for excluded paths during clone and sync'
   4
   5. ./lib-git-p4.sh
   6
   7test_expect_success 'start p4d' '
   8        start_p4d
   9'
  10
  11# Create a repo with the structure:
  12#
  13#    //depot/wanted/foo
  14#    //depot/discard/foo
  15#
  16# Check that we can exclude a subdirectory with both
  17# clone and sync operations.
  18
  19test_expect_success 'create exclude repo' '
  20        (
  21                cd "$cli" &&
  22                mkdir -p wanted discard &&
  23                echo wanted >wanted/foo &&
  24                echo discard >discard/foo &&
  25                echo discard_file >discard_file &&
  26                echo discard_file_not >discard_file_not &&
  27                p4 add wanted/foo discard/foo discard_file discard_file_not &&
  28                p4 submit -d "initial revision"
  29        )
  30'
  31
  32test_expect_success 'check the repo was created correctly' '
  33        test_when_finished cleanup_git &&
  34        git p4 clone --dest="$git" //depot/...@all &&
  35        (
  36                cd "$git" &&
  37                test_path_is_file wanted/foo &&
  38                test_path_is_file discard/foo &&
  39                test_path_is_file discard_file &&
  40                test_path_is_file discard_file_not
  41        )
  42'
  43
  44test_expect_success 'clone, excluding part of repo' '
  45        test_when_finished cleanup_git &&
  46        git p4 clone -//depot/discard/... --dest="$git" //depot/...@all &&
  47        (
  48                cd "$git" &&
  49                test_path_is_file wanted/foo &&
  50                test_path_is_missing discard/foo &&
  51                test_path_is_file discard_file &&
  52                test_path_is_file discard_file_not
  53        )
  54'
  55
  56test_expect_success 'clone, excluding single file, no trailing /' '
  57        test_when_finished cleanup_git &&
  58        git p4 clone -//depot/discard_file --dest="$git" //depot/...@all &&
  59        (
  60                cd "$git" &&
  61                test_path_is_file wanted/foo &&
  62                test_path_is_file discard/foo &&
  63                test_path_is_missing discard_file &&
  64                test_path_is_file discard_file_not
  65        )
  66'
  67
  68test_expect_success 'clone, then sync with exclude' '
  69        test_when_finished cleanup_git &&
  70        git p4 clone -//depot/discard/... --dest="$git" //depot/...@all &&
  71        (
  72                cd "$cli" &&
  73                p4 edit wanted/foo discard/foo discard_file_not &&
  74                date >>wanted/foo &&
  75                date >>discard/foo &&
  76                date >>discard_file_not &&
  77                p4 submit -d "updating" &&
  78
  79                cd "$git" &&
  80                git p4 sync -//depot/discard/... &&
  81                test_path_is_file wanted/foo &&
  82                test_path_is_missing discard/foo &&
  83                test_path_is_file discard_file &&
  84                test_path_is_file discard_file_not
  85        )
  86'
  87
  88test_expect_success 'clone, then sync with exclude, no trailing /' '
  89        test_when_finished cleanup_git &&
  90        git p4 clone -//depot/discard/... -//depot/discard_file --dest="$git" //depot/...@all &&
  91        (
  92                cd "$cli" &&
  93                p4 edit wanted/foo discard/foo discard_file_not &&
  94                date >>wanted/foo &&
  95                date >>discard/foo &&
  96                date >>discard_file_not &&
  97                p4 submit -d "updating" &&
  98
  99                cd "$git" &&
 100                git p4 sync -//depot/discard/... -//depot/discard_file &&
 101                test_path_is_file wanted/foo &&
 102                test_path_is_missing discard/foo &&
 103                test_path_is_missing discard_file &&
 104                test_path_is_file discard_file_not
 105        )
 106'
 107
 108test_done