3 test_description='support for reading config from a blob'
 
   6 test_expect_success 'create config blob' '
 
  15 test_expect_success 'list config blob contents' '
 
  16         echo some.value=1 >expect &&
 
  17         git config --blob=HEAD:config --list >actual &&
 
  18         test_cmp expect actual
 
  21 test_expect_success 'fetch value from blob' '
 
  23         git config --blob=HEAD:config --bool some.value >actual &&
 
  24         test_cmp expect actual
 
  27 test_expect_success 'reading non-existing value from blob is an error' '
 
  28         test_must_fail git config --blob=HEAD:config non.existing
 
  31 test_expect_success 'reading from blob and file is an error' '
 
  32         test_must_fail git config --blob=HEAD:config --system --list
 
  35 test_expect_success 'reading from missing ref is an error' '
 
  36         test_must_fail git config --blob=HEAD:doesnotexist --list
 
  39 test_expect_success 'reading from non-blob is an error' '
 
  40         test_must_fail git config --blob=HEAD --list
 
  43 test_expect_success 'setting a value in a blob is an error' '
 
  44         test_must_fail git config --blob=HEAD:config some.value foo
 
  47 test_expect_success 'deleting a value in a blob is an error' '
 
  48         test_must_fail git config --blob=HEAD:config --unset some.value
 
  51 test_expect_success 'editing a blob is an error' '
 
  52         test_must_fail git config --blob=HEAD:config --edit
 
  55 test_expect_success 'parse errors in blobs are properly attributed' '
 
  56         cat >config <<-\EOF &&
 
  61         git commit -m broken &&
 
  63         test_must_fail git config --blob=HEAD:config some.value 2>err &&
 
  64         test_i18ngrep "HEAD:config" err
 
  67 test_expect_success 'can parse blob ending with CR' '
 
  68         printf "[some]key = value\\r" >config &&
 
  72         git config --blob=HEAD:config some.key >actual &&
 
  73         test_cmp expect actual
 
  76 test_expect_success 'config --blob outside of a repository is an error' '
 
  77         nongit test_must_fail git config --blob=foo --list